byte[] applicationEntropy = Encoding.ASCII.GetBytes("AcmeWidgets");
return ProtectedData.Unprotect(ciphertext, applicationEntropy,
DataProtectionScope.LocalMachine);
}
对于你们中那些使用 .NET Framework 构建密码系统的人,你们将很高兴地了解到有一个全新的类族,它们派生于新的抽象类、密钥哈希消息身份验证代码 (HMAC)。包含了所有的 SHA 变量。下面是一个示例:
byte[] CalcMAC(byte[] key, byte[] msg) {
return new HMACSHA256(key).ComputeHash(msg);
}
如果您在从事基于密码的加密技术,用密码或通行码生成密钥材料,您现在就可以用业界标准算法生成密码 PKCS#5(文档位于 RFC 2898 中)的字节流。新的 Rfc2898DeriveBytes 使得保存和取回密码很容易,正如我在上一专栏中所讲述的。在内部,它使用带有 HMAC-SHA-1 的 PBKDF2 函数:
void CreateNewUserAccount(string name, string pwd) {
Rfc2898DeriveBytes db = new Rfc2898DeriveBytes(password, 32, 1000);
byte[] hash = db.GetBytes(32);
addUserAccountToDatabase(name, db.Salt, hash);
}
返回页首
文章来源于领测软件测试网 https://www.ltesting.net/