最近项目中使用到AES解密。由于客户那边提供的接口是通过AES加密过的。
解密过程中发现了一个问题。直接解密的话解出来数据不对,所以,原字符串需要做些操作再解密。
将16进制值转byte[]
/// AES解密
/// </summary>
/// <param name="encryptStr">密文字符串</param>
/// <returns>明文</returns>
public static byte[] AESDecrypt(string encryptStr)
{
encryptStr = encryptStr.Replace("\r\n", ""); //替换掉换行符号
byte[] keys = Encoding.UTF8.GetBytes("秘钥");
byte[] by = new byte[encryptStr.Length / 2];
int j = 0;
for (int i = 0; i < encryptStr.Length; i = i + 2)
{
by[j] = Convert.ToByte(encryptStr.Substring(i, 2), 16);
j++;
}
return AES.Decrypt(keys, by);
}
时间: 2024-11-03 03:43:25