import org.junit.Test;
import org.springframework.security.crypto.encrypt.Encryptors;
import org.springframework.security.crypto.encrypt.TextEncryptor;
public class EncryptorTest {
@Test
public void testEncryption() {
TextEncryptor te = Encryptors.text("password", "abcdef");
te.encrypt("Hello World!");
}
}
我收到此错误:
java.lang.IllegalArgumentException: Unable to initialize due to invalid secret key
似乎我必须下载一些策略文件JCE扩展才能使其正常工作:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
我希望在部署期间避免这种增加的依赖性,老实说,我不需要256位加密。
是否可以将级别降低到无需下载此JCE扩展名的工作级别?
答案 0 :(得分:2)
没有值256被硬编码到源中:
PBEKeySpec keySpec = new PBEKeySpec(password.toCharArray(), Hex.decode(salt), 1024, 256);
这可以在第54行的AesBytesEncryptor
中找到,至少发布3.2.5。
请注意,Spring使用Apache许可证,因此没有什么可以阻止您创建使用128作为常量的自己的实现。