[英]How to encrypt random value using some unique key in java
您好,我想使用Java中的密鑰加密唯一的隨機值。 我會將這個唯一的隨機值發送給每個Web服務,以確保系統安全,因此沒有人可以在其余客戶端上訪問我的Web服務URL。
請為我提供實現此目標的方法。
提前致謝。
該問題有兩種解決方案:
總之,第一個; 您可以通過套接字對數據進行加密(通過反向工程(例如蠻力),您可以破解用於加密的密碼)。 第二; 使用SSL(安全套接字層)。 我使用了第一個解決方案,然后可以為您詳細介紹如何實現。 這個給你:
1-有一些API可以幫助您做到這一點。 我前一段時間使用jasypt ,我建議。 但是也有其他的。 像充氣城堡 。
通常,它們很容易實現。 在jasypt中,您可以像這樣解決此問題,只需運行測試:
public class SecurityUtil {
private static String passEncrypt;
/*
* Get the message encrypted
* @param String string to encrypt
* @return encrypted message
*/
public static String Encryptor(String message){
SecurityUtil.testEncryptPassSet();
StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
encryptor.setPassword(SecurityUtil.passEncrypt);
String encryptedText = encryptor.encrypt(message);
return encryptedText;
}
/*
* Get the decrypt message
* @param encrypted message
* @return String decrypted message
*
*/
public static String Decryptor(String message) {
SecurityUtil.testEncryptPassSet();
StandardPBEStringEncryptor decryptor = new StandardPBEStringEncryptor();
decryptor.setPassword(SecurityUtil.passEncrypt);
String decryptedText = decryptor.decrypt(message);
return decryptedText;
}
/*
* set the encryption password
*/
public static void setPassEncrypt(String passEncrypt) {
SecurityUtil.passEncrypt = passEncrypt;
}
public static void testEncryptPassSet() {
if (SecurityUtil.passEncrypt == null){
System.out.println("Must set the password after");
}
}
public static void main (String[] args){
SecurityUtil.setPassEncrypt("Test"); //here you key
String encrypted;
System.out.println("Encrypted: "+(encrypted = SecurityUtil.Encryptor("This is a test message")));
System.out.println("Decryp: "+SecurityUtil.Decryptor(encrypted));
}
}
OUTPUT:
加密:eESU3c2IzRSl2VvHs4Otyh + Q3aBisiP6XPfyKpbXMdQ =
Decryp:這是一條測試消息
2-您可以在此處研究如何通過套接字實現SSL。 另外, 這里有一些例子。 在這里,我們有一個關於StackOverflow中類似主題的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.