簡體   English   中英

如何使用Java中的某些唯一密鑰加密隨機值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM