使用sunjce加密解密问题解决

最近在做开发的时候遇到要对用户输入进行加密,上网搜索了一下java下可以使用的加密解密工具包。发现sun本身从jdk1.3开始就提供一个可以选用安装的sunjce工具包。利用sunjce可以产生指定加密算法下的密文于是我就按照用户手册编写了一个加密解密测试类。但是在运行时控制台总是报错没有指定算法(java.security.NoSuchAlgorithmException),可是我按照开发手册已经动态添加了实现类并指定了相应算法.

        Security.addProvider(new com.sun.crypto.provider.SunJCE());

        SecretKeyFactory keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES");

按照控制台错误信息搜索了一下,多半是说没有指定实现类即上文提到 Security.addProvider(new com.sun.crypto.provider.SunJCE());再次查找报错信息相关的网页时,发现有一个回复说将系统时间更改为2004年.试验了一下果然不报错了,那么将系统时间调到比当前时间更大的时间呢.当系统时间被调到2006年时,再次运行程序报错信息发生了变化控制台输出为:java.lang.SecurityException: Cannot set up certs for trusted CAs,在网上搜索了一下终于找到了真正原因:

JCE 1.2.1的证书失效,在2005/07/28以后软件可能不能正常工作,jdk1.3的用户可以从http://java.sun.com/products/jce/index-122.html下载最新的sunjce工具包jce1.2.2后覆盖原来的jce1.2.1.jar即可.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值