Java实现DES对称加密算法(附Android下3DES的JNI源码)

Java实现DES对称加密算法

    转载请注明出处:http://blog.csdn.net/wtbee/article/details/11658017

    Sun公司在Java Platform Standard Ed.6中引入了javax.crypto软件包,javax.crypto软件包为加密操作提供类和接口。在此包中定义的加密操作包括加密、密钥生成和密钥协商,以及消息验证码(Message Authentication Code,MAC)生成。 加密支持包括对称密码、非对称密码、块密码和流密码。此包还支持安全流和密封的对象。此包中提供的许多类都是基于提供者的。该类本身定义可以写入应用程序的编程接口。然后可由独立的第三方供应商编写实现本身,并根据需要无缝嵌入。因此,应用程序开发人员可以利用任意数量的基于提供者的实现,而无需添加或重写代码。

    下面将以DES加密算法为例来介绍怎么使用Sun公司提供的开发包来实现常用的DES对称加密算法。起初在网上找了很多java实现DES加密算法的源码,在自己的调试过程当中发现大部分都存在着加解密错误的问题,不同的源码用相同的明文和密钥来测试得到的密文结果是不一致的。所以,我还是回到了利用现成的开发包来实现DES算法的路线上来。长话短说,要实现DES加密算法必须用到javax.crypto包中的Cipher类,此类为加密和解密提供密码功能。它构成了 Java Cryptographic Extension (JCE) 框架的核心。为创建 Cipher 对象,应用程序需调用 Cipher 的 getInstance 方法并将所请求‘转换’的名称传递给它。还可以指定提供者的名称(可选)。‘转换’ 是一个字符串,它描述为产生某种输出而在给定的输入上执行的操作(或一组操作)。‘转换’始终包括加密算法的名称(例如,DES),后面可能跟有一个反馈模式和填充方案。

‘转换’具有以下形式:

  • “算法/模式/填充” 
  • “算法”

(后一种情况下,使用模式和填充方案特定于提供者的默认值)。例如,以下是有效的转换:

     Cipher c =Cipher.getInstance("DES/CBC/PKCS5Padding");

    使用 CFB 和 OFB

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 40
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值