Tag: salt

在流上腌制C#MD5 ComputeHash

我看不出任何方法来加密MD5.ComputeHash(Stream)。 我错过了一些将字节注入HashAlgorithm的方法吗? 我在执行流计算之前尝试执行ComputeHash(byte []),但不出所料,它没有任何效果。 任何想法(除了修改文件)? 谢谢你的时间。 附录只是为了更具体一点,我想使用一个流来获取我不想加载到内存中的大文件的哈希值。 FileInfo myFI= new FileInfo(“bigfile.dat”); FileStream myIFS = piFile.OpenRead(); MD5 md5 = MD5.Create(); byte[] hash = md5.ComputeHash ( myIFS ); myIFS.Close ();

为什么BCrypt.net GenerateSalt(31)会立即回归?

在阅读了Jeff Atwood关于存储密码的post后,我偶然发现了BCrypt.net,这让我想到了Thomas Ptacek建议使用BCrypt来存储密码。 这最终促成了我对BCrypt的C#实现 在上面最后一个链接的评论中,有人问“为什么GenerateSalt(30)永远服用,但GenerateSalt(31)似乎根本不花时间?” 我运行了BCrypt.HashPassword(密码,BCrypt.GenerateSalt(31))并在0毫秒内得到了我的结果。 我已经运行BCrypt.HashPassword(“密码”,BCrypt.GenerateSalt(30))超过5分钟,但仍然没有结果。 我意识到我们可能不需要随机生成的30个字符的盐来创建我们的密码哈希值(或BCrypt案例中的不可逆加密 )多年。 编辑我应该读一下代码,logRounds与salt长度没有任何关系。 谢谢Aaronaught。 那么,为什么GenerateSalt(31)几乎立即返回一个值(当它需要大约两倍于GenerateSalt(30)的时候? UPDATE 这是修复: private byte[] CryptRaw(byte[] password, byte[] salt, int logRounds) { // … snip … uint rounds = 1U << logRounds; // … snip }

WebMatrix WebSecurity PasswordSalt

我正在使用WebMatrix,并建立了一个基于“StarterSite”的网站。 在这个初学者网站中,您将获得一个很好的基本布局 – 包括注册,登录,忘记密码页等… 我注意到在数据库中“webpages_Membership”表有一个名为“PasswordSalt”的列。 创建一些新用户帐户后,此列始终为空。 所以我假设没有使用密码盐(甚至不是默认密码)。 显然这不是最佳实践,但我似乎找不到任何文档告诉我如何设置或管理密码盐。 如何使用WebSecurity Helper设置密码salt?