.Net AES实施

时间:2012-09-04 18:54:04

标签: .net cryptography aes

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

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

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

如果是,是否有使用.Net的AES Class的最佳/更好的做法?目前在SO上的大部分答案似乎都较旧,而且根本不涉及AES类。

1 个答案:

答案 0 :(得分:2)

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

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