qaz*_*wsx 19 .net c# md5 cryptography invalidoperationexception
每当我尝试在启用了FIPS的Windows XP计算机上使用MD5时,我都会得到一个System.InvalidOperationException.
在FIPS上是否应该使用替代算法而不是MD5?
Bor*_*rja 15
MD5不符合FIPS标准.您可以使用以下散列算法之一代替MD5:
Cod*_*ray 12
在Windows安全策略设置中强制执行FIPS合规性时,您断言您将仅使用FIPS认证的加密和散列算法.MD5 不是这些经批准的散列算法之一,这就是抛出异常的原因.
解决方法很简单:选择不同的散列算法..NET Framework在System.Security.Cryptography命名空间中提供了许多其他选项.选择SHA系列算法之一.我无法想象你有什么理由不得不使用MD5而不是其中一种替代品.
您可以使用 Org.BouncyCastle.Crypto.Digests 中的 MD5Digest
MD5Digest hash = new MD5Digest();
public byte[] Hash(byte[] input)
{
hash.BlockUpdate(input, 0, input.Length);
byte[] result = new byte[hash.GetDigestSize()];
hash.DoFinal(result, 0);
return result;
}
public string Hash(string input)
{
var data = System.Text.Encoding.Unicode.GetBytes(input);
hash.BlockUpdate(data, 0, data.Length);
byte[] result = new byte[hash.GetDigestSize()];
hash.DoFinal(result, 0);
return Hex.ToHexString(result).ToUpper();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12661 次 |
| 最近记录: |