java 传入某个固定字符串 然后加密生成新的字符串 然后可以有方法判断 是否有我这个固定的字符串
时间: 2024-12-12 18:24:34 浏览: 9
在Java中,你可以使用各种加密算法如AES、RSA或简单的Base64编码来对输入字符串进行加密。例如,如果你想要使用一种简单的方式来加密,可以使用`java.util.Base64`库:
```java
import javax.crypto.Cipher;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.spec.SecretKeySpec;
import java.util.Base64;
public class StringEncryption {
// 使用AES算法,密钥长度128位
private static final String ALGORITHM = "AES";
private static final int KEY_SIZE = 128; // in bits
public static String encrypt(String input, String secretKey) throws Exception {
KeyPair keyPair = generateKeyPair();
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(secretKey.getBytes(), ALGORITHM));
byte[] encryptedBytes = cipher.doFinal(input.getBytes());
return Base64.getEncoder().encodeToString(encryptedBytes);
}
public static boolean isOriginal(String encrypted, String original, String secretKey) throws Exception {
byte[] originalBytes = original.getBytes();
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(secretKey.getBytes(), ALGORITHM));
byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encrypted));
return new String(decryptedBytes).equals(original);
}
private static KeyPair generateKeyPair() throws NoSuchAlgorithmException {
KeyPairGenerator generator = KeyPairGenerator.getInstance(ALGORITHM);
generator.initialize(KEY_SIZE);
return generator.generateKeyPair();
}
}
```
在这个例子中,`encrypt`方法接受原始字符串并使用给定的密钥进行加密,而`isOriginal`方法则尝试解密一个已加密的字符串,并检查是否与原字符串匹配。
阅读全文