2013-11-24 166 views
3

對密碼進行加密我使用(從http://www.jasypt.org/encrypting-texts.html修改):爲什麼在加密文本時使用jasypt設置密碼?

BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); 
textEncryptor.setPassword(myEncryptionPassword); 
String myEncryptedText = textEncryptor.encrypt(myText); 
String plainText = textEncryptor.decrypt(myEncryptedText); 

爲什麼需要密碼才能對BasicTextEncryptor設置?

我可能是這裏不理解一些基本的東西,但沒有這個沒有意義,雖然它不工作:

BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); 
String myEncryptedText = textEncryptor.encrypt(myText); 
String plainText = textEncryptor.decrypt(myEncryptedText); 
+1

你正在做的基於密碼的加密,你爲什麼需要密碼的原因。 – user3020494

+0

@ user3020494確定但不再詢問此密碼。它是否被用作生成加密密碼的算法的一部分? –

+1

在同一個會話中,您正在設置密碼,對文本進行加密和解密。嘗試解密加密的文本,而不在另一個會話中設置密碼..它不會工作。 – user3020494

回答

9

它做的工作,它需要進行加密和解密密碼。爲了簡化我已經開始StandardPBEStringEncryptor的兩會爲加密和解密的例子

public static void main(String[] args) { 
    StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor(); 
    encryptor.setPassword("mySecretPassword");   
    String encryptedText = encryptor.encrypt("Hello World"); 
    System.out.println("Encrypted text is: " + encryptedText); 

    StandardPBEStringEncryptor decryptor = new StandardPBEStringEncryptor(); 
    decryptor.setPassword("mySecretPassword"); 
    String decryptedText = decryptor.decrypt(encryptedText); 
    System.out.println("Decrypted text is: " + decryptedText); 
    } 

輸出:

Encrypted text is: +pBbr+KOb7D6Ap/5vYJIUoHbhOruls+L 
Decrypted text is: Hello World 
+0

它似乎喜歡編碼密碼內的安全convern,如果這是從安全的位置讀取? –

+3

必須有信任 - 如果使用更復雜的公鑰/私鑰對來加密和解密信息,那麼私鑰需要存儲在安全的地方。在java世界 - 一個密鑰庫,甚至密鑰庫都是密碼保護的......因此,在哪裏保存密碼 - 在內核或程序或內存中 - 都有其優點和缺點。 – user3020494

相關問題