我正试图用c#将这个方法重写为python,但是python和所有的在线密码器都给了我一个c#无法给出的结果
演示键:55BE4F94FFCA8A40CB78ED8E3BEF6FC0
演示四:2E4F5C8A4E5E8E5F
演示数据:测试
返回c#:x0wOQpG0MpeUdkVjPi/O4Dw+9Mst+lyPzXYC7kryJnY=(base64)
python中的return:xTr+FvQRyUIfbrVq8RIn/Q==(在base64中)
public static string encode(string string_0, string string_1, string string_2)
{
UTF8Encoding utf8Encoding = new UTF8Encoding();
byte[] bytes = utf8Encoding.GetBytes(string_1);
byte[] bytes2 = utf8Encoding.GetBytes(string_2);
byte[] inArray;
using (RijndaelManaged rijndaelManaged = new RijndaelManaged())
{
try
{
rijndaelManaged.Padding = PaddingMode.PKCS7;
rijndaelManaged.Mode = CipherMode.CBC;
rijndaelManaged.KeySize = 256;
rijndaelManaged.BlockSize = 256;
rijndaelManaged.Key = bytes;
rijndaelManaged.IV = bytes2;
MemoryStream memoryStream = new MemoryStream();
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, rijndaelManaged.CreateEncryptor(bytes, bytes2), CryptoStreamMode.Write))
{
using (StreamWriter streamWriter = new StreamWriter(cryptoStream))
{
streamWriter.Write(string_0);
}
inArray = memoryStream.ToArray();
var str = System.Text.Encoding.Default.GetString(inArray);
}
}
finally
{
rijndaelManaged.Clear();
}
}
return Convert.ToBase64String(inArray);
}
编辑:添加python代码
import base64
from Cryptodome.Cipher import AES
from pkcs7 import PKCS7Encoder
key = b'55BE4F94FFCA8A40CB78ED8E3BEF6FC0'
IV = b'2E4F5C8A4E5E8E5F'
data = 'test'
aes = AES.new(key, AES.MODE_CBC, IV)
print(base64.b64encode(aes.encrypt(bytes(PKCS7Encoder().encode(data), "utf8"))))
目前没有回答
相关问题 更多 >
编程相关推荐