jasypt:加密时强制相同的结果
jasypt: Force same result when encrypting
我只是想知道是否可以强制加密器始终return相同输入的相同加密值。
StandardPBEStringEncryptorencryptor = new StandardPBEStringEncryptor();
encryptor.setPassword("My password");
encryptor.setAlgorithm("PBEWithMD5AndTripleDES");
String value1 = encryptor.encrypt("encryptme")
String value2 = encryptor.encrypt("encryptme")
String value3 = encryptor.encrypt("encryptSomethingElse")
assertEquals(value1,value2);
assertNotEquals(value1,value3);
正如the documentation of StandardPBEStringEncryptor
提到的,
If a random salt generator is used, two encryption results for the
same message will always be different (except in the case of random
salt coincidence).
如果您没有明确设置盐生成器,那么随机盐生成器确实是默认值。
出于单元测试的目的,您可以设置盐生成器 returns 相同输入的相同盐(或始终 returns 相同盐),如 ZeroSaltGenerator
, 使用 encryptor.setSaltGenerator(mySaltGenerator);
但是请确保这不会渗透到您的真实代码中 - 仅在测试时这样做。
我只是想知道是否可以强制加密器始终return相同输入的相同加密值。
StandardPBEStringEncryptorencryptor = new StandardPBEStringEncryptor();
encryptor.setPassword("My password");
encryptor.setAlgorithm("PBEWithMD5AndTripleDES");
String value1 = encryptor.encrypt("encryptme")
String value2 = encryptor.encrypt("encryptme")
String value3 = encryptor.encrypt("encryptSomethingElse")
assertEquals(value1,value2);
assertNotEquals(value1,value3);
正如the documentation of StandardPBEStringEncryptor
提到的,
If a random salt generator is used, two encryption results for the same message will always be different (except in the case of random salt coincidence).
如果您没有明确设置盐生成器,那么随机盐生成器确实是默认值。
出于单元测试的目的,您可以设置盐生成器 returns 相同输入的相同盐(或始终 returns 相同盐),如 ZeroSaltGenerator
, 使用 encryptor.setSaltGenerator(mySaltGenerator);
但是请确保这不会渗透到您的真实代码中 - 仅在测试时这样做。