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"; // 指定加密算法为AESpublic 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);}