0
我有測試輸入字符串(鍵=值&鍵=值...)和密鑰(像這樣D2335A9CA4924D9F914D2B47B450D436) 我需要加密我的字符串使用AES加密,但我的結果不等於提供商的結果。結果例子: AD0C66FB3C1204A8B0AC68AA9B9E3029C86DFF5872753F2F8D7B68EA667D8616215C20F831ABD5A4D56F286E471651AE5C15BCEB2F368200B4D9F3F6D2F0791E8F45D45FD .................... 我做錯了嗎? (googlized代碼)AES c#編碼。無法獲得有效結果
public static string Encrypt(string toEncrypt)
{
byte[] keyArray = ASCIIEncoding.ASCII.GetBytes("D2335A9CA4924D9F914D2B47B450D436");
byte[] toEncryptArray = ASCIIEncoding.ASCII.GetBytes(toEncrypt);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.KeySize = 128;
rDel.BlockSize = 256;
rDel.IV = keyArray;
rDel.Mode = CipherMode.CFB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return FormatByteArray(resultArray);
}
internal static string FormatByteArray(byte[] b)
{
System.Text.StringBuilder sb1 = new System.Text.StringBuilder();
int i = 0;
for (i = 0; i < b.Length; i++)
{
if (i != 0 && i % 16 == 0)
sb1.Append("\n");
sb1.Append(System.String.Format("{0:X2} ", b[i]));
}
return sb1.ToString();
}
也許十六進制,而不是base64?如果是這樣,請參閱http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa-in-c –
@adrift,是的,我已經在編輯了。那個鏈接也有幫助。 –
謝謝你們。我已經這樣做了,但結果無論如何都是不正確的。而且任何構建此代碼都會帶來新的結果。我猜一些參數是動態的。 – Ars