java方的代码:
import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class AESEncryptionExample {
private static final String ALGORITHM = "AES"; // 指定加密算法为AES
public static void main(String[] args) throws Exception {
String plainText = "Hello World!"; // 要加密的明文
//密钥
byte[] keyBytes = {19, 18, -115, -95, -101, 18, 5, 53, -13, 23, -97, -85, -2, -57, -121, -26, 25, -78, -119, -43, 71, 101, -43, -60, -18, 81, 101, 58, -62, 92, -84, 12};
SecretKey secretKey = new SecretKeySpec(keyBytes, ALGORITHM); // 创建密钥对象
Cipher cipher = Cipher.getInstance(ALGORITHM); // 获取Cipher对象
//相当于:cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKey); // 初始化加密模式
byte[] encryptedData = cipher.doFinal(plainText.getBytes()); // 执行加密操作
System.out.println("Encrypted Data: " + Base64.getEncoder().encodeToString(encryptedData));
cipher.init(Cipher.DECRYPT_MODE, secretKey); // 初始化解密模式
byte[] decryptedData = cipher.doFinal(encryptedData); // 执行解密操作
System.out.println("Decrypted Data: " + new String(decryptedData, StandardCharsets.UTF_8));
}
}
C#方的代码:
public void AesCount()
{
string url = "CqYbhntGL/szjs/hntmaterial/deliverynote/hntdeliverynote_detail?RowGuid=e96802a0-bbe6-4967-93d5-25908c90daa0";
string key = "ExKNoZsSBTXzF5+r/seH5hmyidVHZdXE7lFlOsJcrAw=";
var aesUrl=Encrypt(url,key);//加密
var aesUrl2 = Decrypt(aesUrl, key);//解密
}
public static string Encrypt(string toEncrypt, string key)
{
//byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
///byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
byte[] keyArray= Convert.FromBase64String(key);
byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateEncryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
public static string Decrypt(string toDecrypt, string key)
{
//byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
byte[] keyArray = Convert.FromBase64String(key);
byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
RijndaelManaged rDel = new RijndaelManaged();
rDel.Key = keyArray;
rDel.Mode = CipherMode.ECB;
rDel.Padding = PaddingMode.PKCS7;
ICryptoTransform cTransform = rDel.CreateDecryptor();
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return UTF8Encoding.UTF8.GetString(resultArray);
}