Java中是否有一个死简单的本机方法用密钥加密/解密字符串?我真的不在乎什么类型的加密(AES,DES等),我只是关心它受一个键的约束而且不容易破解。
理想情况下,我希望它是一个像这样的单行解决方案:
String encryptedString = NativeEncryptionClass.encrypt("this is the data", "key123");
由于
答案 0 :(得分:3)
不确定是否可以在[合法的]单行中执行此操作,但您可以相对轻松地实现简单的对称加密 - 请查看以下示例:
过去我使用Bouncy Castle库效果很好。
答案 1 :(得分:2)
如果您原来的意思是,不依赖于特定于平台的库,那么jasypt可能会对您感兴趣。
答案 2 :(得分:1)
好吧,也许这不是'一条线'但似乎很容易:
使用java的Cipher类。看这里......(本页还有其他例子......)
http://download.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#BlowKeyEx
答案 3 :(得分:1)
您可以尝试使用简单XOR 加密
答案 4 :(得分:-1)
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SimpleMD5Example {
public static void main(String[] args) {
String passwordToHash = "0";
String generatedPassword = null;
try {
// Create MessageDigest instance for MD5
MessageDigest md = MessageDigest.getInstance("MD5");
// Add password bytes to digest
md.update(passwordToHash.getBytes());
// Get the hash's bytes
byte[] bytes = md.digest();
System.out.println(bytes);
// This bytes[] has bytes in decimal format;
// Convert it to hexadecimal format
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
sb.append(Integer.toString((bytes[i] & 0xff), 16).substring(1));
}
// Get complete hashed password in hex format
generatedPassword = sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
System.out.println(generatedPassword);
}
}