每日一得--对称加密算法之(DES3)

bcprov-jdk15-133.jar bcprov-jdk15-133.jar bcprov-jdk15-133.jar 立即下载
 一,实现对称加密算法的方式:jdk实现方式和bcprov-jdk15-133.jar(简称bc)实现方式 



import java.security.Key;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import org.apache.commons.codec.binary.Hex;
import org.bouncycastle.jce.provider.BouncyCastleProvider;




//3DES 速度慢
public class DES3Main {
private static String str= "husq DES test";
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
jdk3DES();
bc3DES();
}
//jdk DES
public static void jdk3DES(){
try{
//生成key
KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");
keyGenerator.init(168);
SecretKey secretKey = keyGenerator.generateKey();
byte[] byteKey = secretKey.getEncoded();

//key转换
DESKeySpec desKeySpec = new DESKeySpec(byteKey);
SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");
Key convertSecretKey = factory.generateSecret(desKeySpec);

//加密
Cipher  cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, convertSecretKey);
byte[] result = cipher.doFinal(str.getBytes());
System.out.println("jdk 3des encrypt="+Hex.encodeHexString(result));

//解密
cipher.init(Cipher.DECRYPT_MODE, convertSecretKey);
byte[] dsign = cipher.doFinal(result);

System.out.println("jdk 3des decrypt="+new String(dsign));

System.out.println("==========================================");
}catch(Exception e){
e.printStackTrace();
}


}

//bcprov-jdk15-133.jar DES
public static void bc3DES(){
try{
Security.addProvider(new BouncyCastleProvider());

//生成key
KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede","BC");
keyGenerator.getProvider();
keyGenerator.init(168);
SecretKey secretKey = keyGenerator.generateKey();
byte[] byteKey = secretKey.getEncoded();

//key转换
DESKeySpec desKeySpec = new DESKeySpec(byteKey);
SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");
Key convertSecretKey = factory.generateSecret(desKeySpec);

//加密
Cipher  cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, convertSecretKey);
byte[] result = cipher.doFinal(str.getBytes());
System.out.println("bc 3des encrypt="+Hex.encodeHexString(result));


//解密
cipher.init(Cipher.DECRYPT_MODE, convertSecretKey);
byte[] dsign = cipher.doFinal(result);

System.out.println("bc 3des decrypt="+new String(dsign));
}catch(Exception e){
e.printStackTrace();
}

}
}
bcprov-jdk16-143.jar和bcprov-jdk15-135.jar 解决no such provider: BC 问题所需的JAR 在jdk中的jre\lib\security修改java.security文件, security.provider.6=com.sun.security.sasl.Provider 下面添加 security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider 在\jre\lib\ext中添加bcprov-jdk15-135.jar的jar包 bcprov-jdk16-143.jar提供加密,解密,生成密钥对等方法 立即下载

相关推荐

bcprov-jdk15on jar包版本集合

加密必备的包,比较完整。比jdk自带完整的多,需要的可以下载使用,绝对值得

每日一得--对称加密算法之(DES)

一,实现对称加密算法的方式:jdk实现方式和bcprov-jdk15-133.jar(简称bc)实现方式  import java.security.Key; import java.security.Security; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypt

xoopx的专栏 633

bcprov-jdk15/16

bcprov-jdk15on-154.jar bcprov-jdk16-143.jar 两个版本的jar随意使用

react-app中引入 数据RSA加密

1. 在 public/js 文件里 新建 jsencrypt.min.js  文件 写入如下代码: (function(){function BigInteger(a,b,c){null!=a&&("number"==typeof a?this.fromNumber(a,b,c):null==b&&"string"!=typeof a?this.fromStr...

人间草木 2138

3des.jar加解密包

3DES 工具类中所需的jar,该资源仅提供jar包无jar包源码

Java生成密钥的实例.rar

Java生成密钥的实例    //产生单钥加密的密钥(myKey)   KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede"); //采用DESede算法   keyGenerator.init(168); //选择DESede算法,密钥长度为112位或168位   Key myKey = keyGenerator.generateKey(); //生成密钥   System.out.println("得到单钥加密密钥");   //产生双钥的密钥对(keyPair)   KeyPairGenerator keyPairGenerator=KeyPairGenerator.getInstance("RSA"); //采用RSA算法   keyPairGenerator.initialize(1024); //指定密钥长度为1024位   KeyPair keyPair = keyPairGenerator.generateKeyPair(); //生成密钥对   System.out.println("生成张三的公钥对");   //保存公钥的字节数组   File f = new File("publicKey.dat"); //保存公钥到文件publicKey.dat   FileOutputStream fout = new FileOutputStream(f);   fout.write(keyPair.getPublic().getEncoded()); //得到公钥的字节数组   fout.close(); //关闭文件输出流   System.out.println("保存公钥到文件: " f.getAbsolutePath());   //用Java对象序列化保存私钥,通常应对私钥加密后再保存   ObjectOutputStream oout = new ObjectOutputStream(new FileOutputStream("privateKey.dat")); //保存私钥到文件privateKey.dat   oout.writeObject(keyPair.getPrivate()); //序列化私钥   oout.close(); //关闭输出流   System.err.println("保存私钥到: privateKey.dat");   //从文件中得到公钥编码的字节数组   FileInputStream fin = new FileInputStream("publicKey.dat"); //打天publicKey.dat   ByteArrayOutputStream baout = new ByteArrayOutputStream(); //用于写入文件的字节流   int aByte = 0;   while ((aByte = fin.read())!= -1) //从文件读取一个字节   {    baout.write(aByte); //写入一个字节   }   fin.close(); //关闭文件输入流   byte[] keyBytes = baout.toByteArray(); //得到公钥的字节数组   baout.close(); //关闭字节数组输出流

每日一得--非对称加密算法之(DH)

一,实现对称加密算法的方式:jdk实现方式 import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.PrivateKey; import java.security.PublicKey

xoopx的专栏 620

3DES加解密所需jar包

博客3DES加解密工具类中所需的jar

科普:简述DES与AES的区别

关注、星标公众号,精彩内容每日送达来源:网络素材安全加密在IC领域也是相当重要的部分了,这次我们简单了解下经典加密算法,DES和AES。DES简介DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法。DES加密算法出自IBM的研究,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,之后开始广泛流...

HackEle的博客 6549

网络攻防技术——MD5碰撞试验

一、题目 本次实验主要是加深大家对MD5碰撞及其原理的理解,使用SEED实验环境中的工具及编程语言,完成以下任务: a)使用md5collgen生成两个MD5值相同的文件,并利用bless十六进制编辑器查看输出的两个文件,描述你观察到的情况; b)参考Lab3_task2.c的代码,生成两个MD5值相同但输出不同的两个可执行文件。 c)参考Lab3_task3.c的代码,生成两个MD5值相同但代码行为不相同的可执行文件。 d)回答问题:通过上面的实验,请解释为什么可以做到不同行为的两个可执行文件具有相同的M

学习记录 3621

RV1126 ISP开发实战:从Tuner调试到IQ文件解析

本文详细介绍了RV1126 ISP开发的完整流程,从Tuner调试到IQ文件解析,涵盖了环境搭建、工具使用、参数配置及性能优化等关键环节。通过实战案例和避坑指南,帮助开发者快速掌握Rockchip芯片的ISP开发技巧,提升图像处理质量。

weixin_29195615的博客 572

高级java每日一道面试题-2024年9月12日-安全篇[加密篇]-有哪些加密算法, 加密算法都有哪些分类?

定义:哈希算法是一种将任意长度的输入数据通过散列算法转换为固定长度输出数据的算法。输出的数据称为哈希值或摘要。特点:哈希算法具有不可逆性(即不能从哈希值推导出原始数据)、唯一性(不同的输入产生不同的哈希值,尽管存在碰撞的可能性,但好的哈希算法碰撞概率极低)等特点。常见算法:已知存在碰撞攻击,不再推荐使用。:包括 SHA-1、SHA-2(SHA-256、SHA-512 等)、SHA-3。SM3:(国密算法之一,哈希算法)中国国家标准的散列函数,类似于 SHA-2。

qq_43071699的博客 1852

DOA估计算法从原理到仿真——CBF、Capon、MUSIC算法

从原理出发理解并实现经典的DOA估计算法

m0_55845774的博客 1万+

对称加密与非对称加密

对称加密与非对称加密 在数字加密算法中,可划分为对称加密和非对称加密。 对称加密 对称加密算法中对于数据的加密与解密使用同一密钥,即使用相同的密码对内容进行加密解密。 内容 + 密钥 = 密文 密文 - 密钥 = 原文 优点 加解密速度快,效率高,适合一对一的信息加密传输 缺点 数据传输前必须协商好密钥,如果任一方密钥被泄漏,那么加密信息就变得不安全了;不适合一对多的情况,若多人共享同一密钥,则...

WindRunnerMax 1699

瑞萨RA6M5驱动ST7735屏幕避坑指南:从软件SPI到显示汉字与图形的完整流程

本文详细介绍了瑞萨RA6M5单片机驱动ST7735屏幕的完整流程,涵盖硬件连接、软件SPI控制、汉字显示及图形绘制优化等关键步骤。通过避坑指南和实用代码示例,帮助开发者解决屏幕初始化、时序控制、字库移植等常见问题,实现高效稳定的显示效果。

weixin_28705087的博客 275

【Godot】【工程】中文字体与多语言(缺字/体积/打包:一次性配置到位)

本文介绍了Godot游戏开发中的中文字体配置与多语言支持方案。主要内容包括:1)中文字体的全局与局部设置;2)使用子集化技术减小字体体积;3)多语言资源管理及翻译系统实现;4)语言切换机制与控件刷新方法;5)字体回退策略优化显示效果;6)打包优化建议。文章提供了从字体导入到多语言实现的完整解决方案,帮助开发者系统性解决中文显示和多语言支持问题,同时优化资源体积和性能表现。配套案例可供学习参考。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 598

每日一得--DES/3DES/AES区别

公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。     DES   1977年1月,美国政府颁布:采纳IBM公司设计的方案作为非机密数据的正式数据加密标准(DES Data Encryption Standard) 。   目前在国内,随着三金工

xoopx的专栏 442

AI原生应用评测:主流大语言模型性能对比

任务适配性:是否匹配应用的核心任务(如代码生成需强逻辑推理,内容创作需强创意性);上下文能力:处理长序列(如10万+字文档)的理解与生成能力;可靠性:幻觉(Hallucination)率、事实准确性、安全合规性;性价比:API调用成本、延迟、 scalability(扩展能力)。AI原生应用的核心是LLM与应用场景的深度协同。

架构师的AI之路,分享AI应用开发架构的学习与实践。 507

每日问答3

1、什么是Shiro Apache Shiro 是 Java 的一个安全(权限)框架。 Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE环境。 Shiro 可以完成:认证、授权、加密、会话管理、与Web 集成、缓存 等。 三大核心组件: 2、描述Shiro认证流程 1、收集用户身份/凭证 2、调用 Subject.login 进...

baidu_38379823的博客 200

EtherCAT主站IGH-- 49 -- 搭建xenomai系统及自己的IGH主站

以上就是搭建xenomai系统及自己的IGH主站的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 3161

2026年国赛C题微网与外部电网电力调控策略 (三):问题三、问题四滚动预测、实时电价与结果核验

专栏内定期更新ABCDE五题详细思路、代码(含运行结果图)和讲解视频-(11号之前半价):问题三看起来只是多给了一个光伏预报附件,实质上它改变了整道题的信息结构:问题四则是在问题二、问题三之上替换价格来源。问题4-2相当于“确定性计划+实时电价”,问题4-3相当于“滚动预测+实时电价”。物理模型完全不变,改变的是价格序列和费用口径。本文先给出核心结果:从结果看,问题3比问题2多约164.21万元,问题4-3比问题4-2多约168.79万元。主要增量不是“储能没有工作”,而是预测误差、计划偏差和紧急购电造成的

YOLO 343

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

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

ITMuch的专栏 854

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

密码基础原理和对称加密

文章目录密码学的六种工具密码信息的常识历史上的密码凯撒密码简单替换密码enigma密码机 密码学的六种工具 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器. 六种工具分别用来应对不同的密码威胁 密码信息的常识 不要使用保密的密码算法: 密码算法不可能永远保密 开发高强度的密码算法本身很困难 使用低强度的密码比不使用密码更危险(虚假的安全感) 密码总会被破解,一...

zhaojiew的学习笔记 652

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

每日一学32——Unity简易字符串加密算法

学习来源:https://blog.youkuaiyun.com/a451319296/article/details/109072863 为了方便本地json保存数据,可以将加密写在保存json数据之前,参考多方链接写了一个简易的字符串加密算法,运行结果: image.png 代码如下: using System; using System.IO; using System.Security.Cr...

eevee_1的博客 465

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 每日一得--对称加密算法之(DES)
下一篇: 每日一得--非对称加密算法之(DH)
一根筋i
博客等级 码龄16年 7粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值