java 加密解密比较短方法
Java是一种广泛使用的计算机编程语言,它具有丰富的加密和解密方法。在本文中,我们将探讨一些短小精悍的Java加密解密方法。
1. Caesar密码
Caesar密码是一种简单的替换密码,也被称为移位密码。它通过将每个字母向前或向后移动固定的位置来加密和解密文本。在Java中,可以使用以下代码实现Caesar密码的加解密。
```java
public class CaesarCipher {
public static String encrypt(String plaintext, int shift) {
StringBuilder ciphertext = new StringBuilder();
for (char c : CharArray()) {
if (Character.isLetter(c)) {
char base = Character.isUpperCase(c) ? 'A' : 'a';
c = (char) ((c - base + shift) % 26 + base);
}java加密方式有哪些
ciphertext.append(c);
}
String();
}
public static String decrypt(String ciphertext, int shift) {
return encrypt(ciphertext, 26 - shift);
}
public static void main(String[] args) {
String plaintext = "Hello, World!";
int shift = 3;
String ciphertext = encrypt(plaintext, shift);
System.out.println("加密后:" + ciphertext);
System.out.println("解密后:" + decrypt(ciphertext, shift));
}
}
```
2. DES加密
DES(Data Encryption Standard)是一种对称加密算法,广泛用于保护计算机网络中的数据安全。在Java中,可以使用pto包中的DES类来实现加密和解密。
```java
pto.Cipher;
pto.SecretKey;
pto.SecretKeyFactory;
pto.spec.DESKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class DES {
public static String encrypt(String plaintext, String key) throws Exception {
DESKeySpec desKeySpec = new Bytes(StandardCharsets.UTF_8));
SecretKeyFactory keyFactory = Instance("DES");
SecretKey secretKey = ateSecret(desKeySpec);
Cipher cipher = Instance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encryptedBytes = cipher.Bytes(StandardCharsets.UTF_8));
Encoder().encodeToString(encryptedBytes);
}
public static String decrypt(String ciphertext, String key) throws Exception {
DESKeySpec desKeySpec = new Bytes(StandardCharsets.UTF_8));
SecretKeyFactory keyFactory = Instance("DES");
SecretKey secretKey = ateSecret(desKeySpec);
Cipher cipher = Instance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedBytes = cipher.Decoder().decode(ciphertext));
return new String(decryptedBytes, StandardCharsets.UTF_8);
}
public static void main(String[] args) throws Exception {
String plaintext = "Hello, World!";
String key = "12345678";
String ciphertext = encrypt(plaintext, key);
System.out.println("加密后:" + ciphertext);
System.out.println("解密后:" + decrypt(ciphertext, key));
}
}
```
3. RSA加密
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,常用于加密和解密敏感信息。在Java中,可以使用java.security包中的KeyPairGenerator和Cipher类来实现RSA加密和解密。
```java
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.util.Base64;
public class RSA {
public static String encrypt(String plaintext, PublicKey publicKey) throws Exception {
Cipher cipher = Instance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论