Java中是否存在一種使用密鑰加密/解密字符串的簡單的本機方法?我並不在乎什麼類型的加密(AES,DES等),我只是在意它被一個密鑰綁定而不易破壞。簡單的一行,Java中的本地加密/解密方法
理想情況下,我想它是像這樣一個在線解決方案:
String encryptedString = NativeEncryptionClass.encrypt("this is the data", "key123");
感謝
Java中是否存在一種使用密鑰加密/解密字符串的簡單的本機方法?我並不在乎什麼類型的加密(AES,DES等),我只是在意它被一個密鑰綁定而不易破壞。簡單的一行,Java中的本地加密/解密方法
理想情況下,我想它是像這樣一個在線解決方案:
String encryptedString = NativeEncryptionClass.encrypt("this is the data", "key123");
感謝
好吧,也許這不是「一條線」,但它似乎很容易:
利用Java的Cipher類。看這裏......(有此頁面上的其他例子......)
http://download.oracle.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#BlowKeyEx
不知道你可以在[legiable]一個俏皮話做到這一點,但你可以相對容易地實現簡單的對稱加密 - 看看下面的例子:
我使用Bouncy Castle庫在過去良好的效果。
更好使用AES。 DES已經過時了,速度很慢。 – rossum
如果你的本意是你的意思,不依賴於特定於平臺的庫,可能jasypt可能對你很有意思。
可能是你應該嘗試使用簡單的XOR加密
Downvoter:實際上,使用一次性鍵盤進行XOR是最好的加密方式(如果您有安全的方式來溝通/存儲「鍵盤」)。 –
@HotLicks:答案是否與OTP有關?單獨的「簡單異或」也可能意味着ROT13的實現。 –
@TheTerribleSwiftTomato - 也許,也許不是。 –
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);
}
}
你有甚至試圖谷歌* java的AES *? – Joao
爲什麼是本地的....? – gd1
爲什麼一條線......? –