我正在使用Jasypt進行加密。這是我的代碼:如何找出我的JVM支持哪種算法[加密]?
public class Encryptor {
private final static StandardPBEStringEncryptor pbeEncryptor = new StandardPBEStringEncryptor();
private final static String PASSWORD = "FBL";
private final static String ALGORITHM = "PBEWithMD5AndTripleDES";
static{
pbeEncryptor.setPassword(PASSWORD);
//pbeEncryptor.setAlgorithm(ALGORITHM);
}
public static String getEncryptedValue(String text){
return pbeEncryptor.encrypt(text);
}
public static String getDecryptedValue(String text){
return pbeEncryptor.decrypt(text);
}
}
取消對setAlgorithm
線,它會拋出一個異常
org.jasypt.exceptions.EncryptionOperationNotPossibleException: 加密提出了一個excep重刑。一個 可能的原因是您使用強 加密算法和你沒有 安裝Java加密防爆 張力(JCE)無限強度 權限策略文件在這個Java 虛擬機
阿比說:
設置要使用的算法對加密 設置算法用於加密 ,像 PBEWithMD5AndDES。
該算法(如果指定一個, 或默認JVM提供商,如果你 不行),並且,如果支持,你 還可以指定模式和填充的要由 您的JCE提供支持它就像ALGORITHM/MODE/PADDING一樣。
現在,當您發表評論「setAlgorithm」,它會使用默認的算法[我猜是MD5],它會正常工作。這意味着我的JVM支持md5。現在,如何找出我的JVM支持的其他加密算法。
感謝,
我使用代替JDK 1.6 – 2010-09-10 10:54:52
內容:System.out.println( 「算法:」 + service.getAlgorithm());使用System.out.println(「」+ service);並且您將能夠看到可用的加密級別。例如,以下表示支持128位AES加密,但不支持256位AES:SunJCE:Cipher.AES - > com.sun.crypto.provider.AESCipher ... SupportedModes = ECB | CBC | PCBC | CTR | CTS | CFB | OFB | CFB8 | CFB16 | CFB24 | CFB32 | CFB40 | CFB48 | CFB56 | CFB64 | OFB8 | OFB16 | OFB24 | OFB32 | OFB40 | OFB48 | OFB56 | OFB64 | CFB72 | CFB80 | CFB88 | CFB96 | CFB104 | CFB112 | CFB120 | CFB128 | OFB72 | OFB80 | OFB88 | OFB96 | OFB104 | OFB112 | OFB120 | OFB128} – 2011-10-14 15:36:36
該代碼列出了很多不能使用的算法。沒有那麼有用的代碼。 – Jonas 2018-01-16 15:59:38