informatica - md5 c# encrypt decrypt
¿Existe un algoritmo de hash alternativo para MD5 para sistemas habilitados para FIPS? (3)
Cuando aplica el cumplimiento de FIPS en la configuración de la política de seguridad de Windows, está afirmando que solo va a utilizar algoritmos de cifrado y hash certificados por FIPS. MD5 no es uno de estos algoritmos hash aprobados, y es por eso que se lanza la excepción.
La solución es simple: elija un algoritmo de hashing diferente. .NET Framework ofrece muchas otras opciones en el espacio de nombres System.Security.Cryptography
. Seleccione uno de la familia de algoritmos SHA. No puedo imaginar ninguna razón por la que tendría que usar MD5 en lugar de una de las alternativas.
Cada vez que trato de usar MD5 en una máquina con Windows XP que tiene FIPS habilitado, System.InvalidOperationException
una System.InvalidOperationException
.
¿Hay algún algoritmo alternativo que deba usar en lugar de MD5 en FIPS?
MD5 no es compatible con FIPS. Puede usar en lugar del MD5 uno de los siguientes algoritmos de hash:
Puede usar MD5Digest desde Org.BouncyCastle.Crypto.Digests
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();
}