0

我正在使用 bcrypt 和 AES 为移动设备实现登录机制。用户必须使用密码登录,然后使用 bcrypt 对其进行哈希处理并与数据库中的哈希值进行比较。当然,登录事务将通过 SSL 进行,并且服务器将被配置为仅提供 SSL。那部分非常简单。

但是,我还想存储一个 cookie,这样用户就不必每次都登录。cookie 将在 24 小时后自动从设备中删除。我计划存储一个由日期时间戳和 bcrypt 哈希组成的 AES 加密字符串。AES 实现是我遇到困难的地方。我计划使用Encryptamajig,它是“.NET AES 加密算法功能的简单包装器”,但后来我看到这个问题发布在上面,但尚未修复。(问题与使用相同的派生函数生成 IV 作为密钥有关)。

我的问题是,这是一个大问题,应该阻止我使用这个包装器吗?(我的密码学知识正在增加,但仍然相对较低;但是,如果我理解正确,这与使 WEP 如此容易破解的问题接近)

如果是,是否有使用 .Net 的AES 类的最佳/更好的做法?似乎目前关于 SO 的大多数答案都较旧,并且根本不涉及 AES 类。

4

1 回答 1

2

IMO cookie 应该是存储在数据库中的自动登录表中的随机令牌。然后,您可以在不更改用户密码的情况下使这些令牌无效。

在 .net 上使用 AES 时,我会使用其中一个内置类,Rijndael块大小为 128 或Aes. 如果我需要额外的速度,我只会使用其他实现(加密类的构建通常很慢)。

于 2012-09-04T18:57:37.170 回答