当前位置:实例文章 » C#开发实例» [文章]AES加密(java和C#)

AES加密(java和C#)

发布人:shili8 发布时间:2024-01-14 16:21 阅读次数:140

AES加密是一种对称加密算法,它使用相同的密钥进行加密和解密。在本文中,我们将使用Java和C#分别实现AES加密算法,并提供部分代码示例和代码注释。

首先,让我们来看看如何在Java中实现AES加密算法。

javaimport javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

public class AESEncryption {
 public static String encrypt(String plainText, String key) throws Exception {
 Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
 SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");
 cipher.init(Cipher.ENCRYPT_MODE, secretKey);
 byte[] encryptedText = cipher.doFinal(plainText.getBytes());
 return Base64.getEncoder().encodeToString(encryptedText);
 }

 public static String decrypt(String encryptedText, String key) throws Exception {
 Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
 SecretKeySpec secretKey = new SecretKeySpec(key.getBytes(), "AES");
 cipher.init(Cipher.DECRYPT_MODE, secretKey);
 byte[] decryptedText = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
 return new String(decryptedText);
 }

 public static void main(String[] args) throws Exception {
 String plainText = "Hello, AES!";
 String key = "thisisakey123456";
 String encryptedText = encrypt(plainText, key);
 System.out.println("Encrypted Text: " + encryptedText);
 String decryptedText = decrypt(encryptedText, key);
 System.out.println("Decrypted Text: " + decryptedText);
 }
}


上面的代码演示了如何使用Java实现AES加密算法。我们首先创建了一个`AESEncryption`类,其中包含了`encrypt`和`decrypt`方法来进行加密和解密操作。在`main`方法中,我们使用了这两个方法来加密和解密文本,并打印出结果。

接下来,让我们来看看如何在C#中实现AES加密算法。

csharpusing System;
using System.Security.Cryptography;
using System.Text;

public class AESEncryption{
 public static string Encrypt(string plainText, string key)
 {
 byte[] plainBytes = Encoding.UTF8.GetBytes(plainText);
 using (Aes aes = Aes.Create())
 {
 aes.Key = Encoding.UTF8.GetBytes(key);
 aes.Mode = CipherMode.ECB;
 aes.Padding = PaddingMode.PKCS7;
 ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
 byte[] encryptedBytes = encryptor.TransformFinalBlock(plainBytes,0, plainBytes.Length);
 return Convert.ToBase64String(encryptedBytes);
 }
 }

 public static string Decrypt(string encryptedText, string key)
 {
 byte[] encryptedBytes = Convert.FromBase64String(encryptedText);
 using (Aes aes = Aes.Create())
 {
 aes.Key = Encoding.UTF8.GetBytes(key);
 aes.Mode = CipherMode.ECB;
 aes.Padding = PaddingMode.PKCS7;
 ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
 byte[] decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes,0, encryptedBytes.Length);
 return Encoding.UTF8.GetString(decryptedBytes);
 }
 }

 public static void Main()
 {
 string plainText = "Hello, AES!";
 string key = "thisisakey123456";
 string encryptedText = Encrypt(plainText, key);
 Console.WriteLine("Encrypted Text: " + encryptedText);
 string decryptedText = Decrypt(encryptedText, key);
 Console.WriteLine("Decrypted Text: " + decryptedText);
 }
}


上面的代码演示了如何使用C#实现AES加密算法。我们同样创建了一个`AESEncryption`类,其中包含了`Encrypt`和`Decrypt`方法来进行加密和解密操作。在`Main`方法中,我们使用了这两个方法来加密和解密文本,并打印出结果。

通过以上代码示例,我们可以看到如何在Java和C#中实现AES加密算法,并且可以通过密钥来加密和解密文本。这种对称加密算法可以用于保护敏感数据的安全传输和存储。

相关标签:c#java开发语言
其他信息

其他资源

Top