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小时内删除。