大佬教程收集整理的这篇文章主要介绍了如何找出我的JVM支持哪种算法[加密]?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
以下将列出所有提供者和算法支持者。您正在使用什么版本的Java?除非您使用的是旧版本,否则应将JCE作为标准配置。
import java.security.ProvIDer;
import java.security.Security;
public class SecurityListings {
public static voID main(String[] args) {
for (ProvIDer provIDer : Security.getProvIDers()) {
System.out.println("ProvIDer: " + provIDer.getname());
for (ProvIDer.Service service : provIDer.getServices()) {
System.out.println(" Algorithm: " + service.getAlgorithm());
}
}
}
}
编辑:为什么不使用javax.crypto包中的标准内容?
1)产生Key
使用
Key key = SecretKeyFactory.getInstance(algorithm).generateSecret(new PBEKeySpec(password.tochararray()));
2)创建一个Cipher
使用
cipher = Cipher.getInstance(algorithm);
3)用密钥初始化密码
cipher.init(Cipher.ENCRYPT_MODE, key);
4)用
byte[] encrypted = cipher.doFinal(data)
我正在使用Jasypt进行加密。这是我的代码:
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
行,它将引发异常
api说:
请参阅:http
:
//www.jasypt.org/api/jasypt/apidocs/org/jasypt/encryption/pbe/StandardPBEStringEncryptor.html#setAlgorithm%28java.lang.String%29
现在,当您注释“
setAlgorithm”时,它将使用默认的算法[我猜它是md5],并且可以正常工作。这意味着我的JVM支持md5。现在,如何找出我的JVM支持哪些其他加密算法。
谢谢,
以上是大佬教程为你收集整理的如何找出我的JVM支持哪种算法[加密]?全部内容,希望文章能够帮你解决如何找出我的JVM支持哪种算法[加密]?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。