1.新建一个java项目,里面新建一个java类,加入要用到的jar包,整体的框架如图所示:

2.DES_3.java里面的代码如下所示:

import java.security.Key;
import java.security.SecureRandom;
import java.security.Security;import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;import org.apache.commons.codec.binary.Hex;
import org.bouncycastle.jce.provider.BouncyCastleProvider;public class DES_3 {private static String src = "mu rong fei fei 636";public static void bc3DES() {try {Security.addProvider(new BouncyCastleProvider());// 生成keyKeyGenerator keyGenerator = KeyGenerator.getInstance("DESede", "BC");keyGenerator.getProvider();// keyGenerator.init(168);keyGenerator.init(new SecureRandom());SecretKey secretKey = keyGenerator.generateKey();byte[] bytesKey = secretKey.getEncoded();// key转换DESedeKeySpec deSedeKeySpec = new DESedeKeySpec(bytesKey);SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");Key convertSecretKey = factory.generateSecret(deSedeKeySpec);// 加密Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, convertSecretKey);byte[] result = cipher.doFinal(src.getBytes());System.out.println("bc 3des encrypt:" + Hex.encodeHexString(result));// 解密cipher.init(Cipher.DECRYPT_MODE, convertSecretKey);result = cipher.doFinal(result);System.out.println("bc 3des decrypt:" + new String(result));} catch (Exception e) {e.printStackTrace();}}public static void jdk3DES() {try {// 生成keyKeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");// keyGenerator.init(168);keyGenerator.init(new SecureRandom());SecretKey secretKey = keyGenerator.generateKey();byte[] bytesKey = secretKey.getEncoded();// key转换DESedeKeySpec deSedeKeySpec = new DESedeKeySpec(bytesKey);SecretKeyFactory factory = SecretKeyFactory.getInstance("DESede");Key convertSecretKey = factory.generateSecret(deSedeKeySpec);// 加密Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, convertSecretKey);byte[] result = cipher.doFinal(src.getBytes());System.out.println("jdk 3des encrypt:" + Hex.encodeHexString(result));// 解密cipher.init(Cipher.DECRYPT_MODE, convertSecretKey);result = cipher.doFinal(result);System.out.println("jdk 3des decrypt:" + new String(result));System.out.println();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {jdk3DES();bc3DES();}}

3.运行之后可以实现加密算法:

3DES实现加密算法相关推荐

  1. 微信小程序-JavaScript 3DES对称加密算法加密使用

    一.前言: 1. 最近又被领导叫去谈话,公司最近有个二维码模块项目要开发,要求使用微信小程序,说是方面和快捷,不用安装手机APP.o(╥﹏╥)o真是无语,老子在公司的职位是Windwos 开发,现在他 ...

  2. 3DES数据加密算法

    一.3DES数据加密算法在线工具文档 1.1.3DES数据加密算法介绍 3DES数据加密算法是一种可逆的对称加密算法,也称三重数据加密算法(英语:Triple Data Encryption Algo ...

  3. 面试必问:常用的加密算法有哪些?

    加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密. 一.不可逆加密 常见的不可逆加密算法有MD5,HMAC,SHA1.SHA-224.SHA-256.SHA-3 ...

  4. 探讨.NET Core数据进行3DES加密和解密问题

    前言 一直困扰着我关于数据加密这一块,24号晚上用了接近3个小时去完成一项任务,本以为立马能解决,但是为了保证数据的安全性,我们开始去对数据进行加密,然后接下来3个小时专门去研究加密这一块,然而用着用 ...

  5. Java MD5和SHA256等常用加密算法

    前言 我们在做java项目开发的时候,在前后端接口分离模式下,接口信息需要加密处理,做签名认证,还有在用户登录信息密码等也都需要数据加密.信息加密是现在几乎所有项目都需要用到的技术,身份认证.单点登陆 ...

  6. SSL证书的加密算法都有哪些?

    就像我们在凯撒的密码中看到的那样,每种加密数据的加密方法背后都有特定的逻辑.今天使用的加密方法依赖于高度复杂的数学函数,这些函数几乎不可能破解它们.本文针对SSL证书加密算法都有哪些进行详细解答一下. ...

  7. 不可逆加密:说一下你常用的加密算法

    加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密. 一.不可逆加密 常见的不可逆加密算法有MD5,HMAC,SHA1.SHA-224.SHA-256.SHA-3 ...

  8. 聊一聊平时常用的加密算法

    点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达! 加密算法我们整体可以分为:可逆加密和不可逆加密,可逆加密又可以分为:对称加密和非对称加密. 一.不可逆加密 常见的不可逆加密算法有MD5, ...

  9. 22.加密与安全相关,证书申请CA(gpg,openssl)

    安全机制 信息安全防护的目标 保密性 Confidentiality 完整性 Integrity 可用性 Usability 可控制性 Controlability 不可否认性 Non-repudia ...

  10. 数字签名和数字证书详解

    原文件地址:http://www.tuicool.com/articles/7buueeQ 密钥分为两种:对称密钥和非对象密钥 对称密钥算法:DES 3DES AES,加密算法快 非对称密钥算法:RA ...

最新文章

  1. (11)zabbix item types监控类型
  2. (24)2-9-9-12分页(上)
  3. Linq To Sql 练习
  4. 学计算机的快毕业要学论文吗,学计算机的好写毕业论文吗?
  5. Ansible安装及配置
  6. springsecurity文档_今天学了springsecurity
  7. L1-015. 跟奥巴马一起画方块-PAT团体程序设计天梯赛GPLT
  8. nginx通过反向代理实现未备案域名访问详解
  9. 《Kafka权威指南》读书笔记4 Kafka消费者
  10. 数据库安全关键技术之数据库脱敏技术详解
  11. android安卓-子线程计时器TimeCountThread-时分秒-实用功能系列
  12. uni-app开发一寸二寸证件大头半身照制作合成小程序
  13. input输入框 去掉外边框 解决方案
  14. 【C++面试必备】一个专栏带你搞定剑指offer第二版
  15. bi软件用来做什么?
  16. Mockito verify Junit5集成 Mockito
  17. vue获取麦克风_微信小程序实现录音时的麦克风动画效果实例
  18. 关于数组的引用和引用的数组
  19. 提升Facebook触及率和互动率攻略 | 智能客服帮您抓住用户的心
  20. 华为一口气发布十余款新品,HarmonyOS用户过亿

热门文章

  1. 微型计算机结构五大,微型计算机的体系结构
  2. 面试前hr加了微信,面试后是否可以向hr询问面试结果?
  3. 炜煌E30 E31微型热敏打印机 STM32 串口驱动
  4. zigbee学习之JN5169通用函数
  5. 基本DOS命令——文件操作
  6. DeepFaceLab坑之ffmpeg
  7. 腾讯云IM-SDK集成(web端)完成IM登录
  8. 企业数据总线(ESB)和注册服务管理(dubbo)的区别
  9. 怎么生成一个永久性的二维码?微信群二维码如何长期有效?
  10. JavaScript - 获取、修改 title 元素的内容