这个班 :
import org.jasypt.util.text.BasicTextEncryptor;
public class TestSame {
public static void main(String args[]){
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
textEncryptor.setPassword("test");
System.out.println(textEncryptor.encrypt("test"));
System.out.println(textEncryptor.encrypt("test"));
System.out.println(textEncryptor.decrypt("Nv4nMcuVwsvWVuYD7Av44Q=="));
System.out.println(textEncryptor.decrypt("bjU82X18p9gAivwomA+NpQ=="));
}
}
生成此输出:
n3G0M4YH8QjPU+YMYsfTmw==
ftokGN7dMKyLtKBaim2RTQ==
test
test
为什么加密的文本不同?解密的文本是相同的,那么由于每个加密的文本都不相同,如何解密密码?
我希望使用相同密码和相同加密的相同文本将生成相同的加密文本,但是事实并非如此?
最佳答案
From the documentation:
如果使用随机盐生成器,则同一消息的两个加密结果将始终是不同的(随机盐重合的情况除外)。这可以通过一次对数据集进行蛮力攻击并迫使攻击者对每个单独的加密数据片段进行蛮力攻击来增强安全性。