c在本地存储用于在线验证的密码

本文关键字:在线 验证 密码 用于 存储 | 更新日期: 2024-10-20 07:24:54

我想知道最好的方法是什么。基本上,我的程序将表现得像PC的Steam应用程序,或自动登录用户的Spotify。

换句话说,用户在我们的网站上创建了一个在线帐户。通过此帐户登录(电子邮件和密码),他们可以登录我们的c#应用程序并访问该程序的功能。

我可以很好地工作,因为c#应用程序通过互联网安全地连接到一个配备SSL的网络服务,该服务访问网站的数据库并验证登录信息。我希望这一步是自动化的,所以一旦他们启动程序,它应该会自动让他们登录,前提是他们以前至少登录过一次。

在不影响登录信息安全的情况下,最好的方法是什么?

c在本地存储用于在线验证的密码

创建一个数据库表,比方说它被称为userlogged。每次用户成功登录时创建一个GUID。将该GUID存储在userloged中,并将其返回到您的c#应用程序,以便将其存储在本地(您可以对其进行重写,使用windows注册表(regedit)或任何您想让任何人都更难复制的东西)。

下一次,如果GUID存储在本地,则会发送到您的应用程序,并且应用程序会记录用户,并创建一个新的GUID,该GUID也会发送到本地存储(这样,如果有人复制GUID,则不会同时记录两个用户)。

如果日志记录失败,请从数据库中删除GUID。

还设置一个标志,这样,如果用户已经从GUID登录,他将被要求再次登录,以执行一些与安全相关的操作,如更改密码。

好吧,如果我正确理解你的问题,你想安全地存储用户id和密码。并在应用程序启动时使用它们登录。

有两个部分

  1. 存储—将这些数据保存在何处
  2. 安全-如何保护密码

  3. 您可以在许多位置保存这些信息。应用程序配置文件、注册表、INI、本地存储、数据库等。我将由您决定。

  4. 这是保护密码的关键部分。您可以使用三重DES或AES加密来保护密码。或者,您也可以使用Windows数据保护API(DPAPI),它使用操作系统生成和保护的密钥以及Triple DES加密算法来加密和解密信息。在c#中,可以使用System.Security.Cryptography.ProtectedData类来处理此问题

希望这能有所帮助。