次のコードがあります。私のステージング環境と実稼働前環境、および実稼働環境で動作しています。
本番環境でのみ突然動作しなくなった方法。それはまだプリプロダクションとプロダクションで動作します。
storedHash != calcHash を意味する「ハッシュ値が一致しません」というエラーがスローされます。
これが 3 つの環境でのみ発生している理由はありますか?
static public string StrDec(string value, string key)
{
String dataValue = "";
String calcHash = "";
String storedHash = "";
MACTripleDES mac3des = new MACTripleDES();
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
mac3des.Key = md5.ComputeHash(Encoding.UTF8.GetBytes(key));
try
{
string strRemoveSpace = value.Replace(" ", "+");
dataValue = Encoding.UTF8.GetString(System.Convert.FromBase64String(strRemoveSpace.Split(System.Convert.ToChar("-"))[0]));
storedHash = Encoding.UTF8.GetString(System.Convert.FromBase64String(strRemoveSpace.Split(System.Convert.ToChar("-"))[1]));
calcHash = Encoding.UTF8.GetString(mac3des.ComputeHash(Encoding.UTF8.GetBytes(dataValue)));
if (storedHash != calcHash)
{
//Throw exception because data was corrupted here
throw new ArgumentException("Hash value does not match");
}
}
catch (System.Exception ex)
{
//Catch System.Exception here
}
return dataValue;
}