java中3DES秘钥

Java实现3DES加密解密(DESede/ECB/PKCS5Padding使用) 阅读详情
java中3des秘钥的生成以及加解密代码:
public class DESTest {

    public static void main(String[] args) {
        //数据明文
        String data = "zhegsjsjfsfjs";
        try {
            //1.java生成3des秘钥加解密
            Key desKey = get3DESKey();
            String encrypt = new String(Base64.encode(desKey.getEncoded()));
            System.out.println("java生成的3des秘钥为:" + encrypt);
            byte[] bytes =
                    encryptOrDecryptBy3DES(data.getBytes("utf-8"), Cipher.ENCRYPT_MODE, desKey);
            System.out.println("java生成的3des秘钥加密后的数据:" + new String(Base64.encode(bytes)));
            byte[] bytes1 = encryptOrDecryptBy3DES(bytes, Cipher.DECRYPT_MODE, desKey);
            System.out.println("java生成3des密钥解密后的数据:" + new String(bytes1));

            //2.已知3des秘钥串加解密
            Key key = strTo3DESKey("LAiSOwt1T2RiXdPT9NYyOJRkYjiYVPiS");
            byte[] b =
                    encryptOrDecryptBy3DES(data.getBytes("utf-8"), Cipher.ENCRYPT_MODE, key);
            System.out.println("已知3des秘钥串加密后的数据" + new String(Base64.encode(b)));
            byte[] b1 = encryptOrDecryptBy3DES(b, Cipher.DECRYPT_MODE, key);

            System.out.println("已知3des秘钥串解密后的数据:" + new String(b1));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //获取des密钥
    public static Key get3DESKey() throws NoSuchAlgorithmException {
        KeyGenerator keyGenerator = KeyGenerator.getInstance("DESede");
        keyGenerator.init(168);
        Key key = keyGenerator.generateKey();
        return key;
    }

    //已知密钥串,获取3DES密钥
    public static Key strTo3DESKey(String key) throws NoSuchAlgorithmException,
            InvalidKeyException, InvalidKeySpecException {
        Provider provider = new BouncyCastleProvider();
        KeySpec keySpec = new DESedeKeySpec(Base64.decrypt(key.getBytes("utf-8"));
        SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DESede", provider);
        SecretKey secretKey = secretKeyFactory.generateSecret(keySpec);
        return secretKey;
    }

    //加解密通过3des算法
    public static byte[] encryptOrDecryptBy3DES(byte[] bytes, int mode, Key key)
            throws NoSuchPaddingException, NoSuchAlgorithmException,
            InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
        //填充模式:DESede/ECB/PKCS5Padding
        Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding");
        cipher.init(mode, key);
        return cipher.doFinal(bytes);

}

}

导入的jar包:

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk16</artifactId>
    <version>1.46</version>
</dependency>

3DES加解密java实现 最近做手机银行需要加密一些东西,需要用到3DES加密,简单的了解了一下。 涉及的几个概念 原文:需要加密的内容,加密时需要转换成字符数组 密文:加密后的内容,3DES加密后产生的是每8位一个单元的二进制字符数组 加密算法:加密时使用的算法,3DES加密使用的是DESede算法 加密秘钥:长度为24字节的字符数组,是否保密就看秘钥保存的是否隐蔽 前准备: 3DES加密秘钥如果不是24位 阅读详情

相关推荐

Java实现3DES加解密算法

本文将介绍如何使用Java语言实现3DES算法,并提供相应的源代码。本文介绍了如何使用Java语言实现3DES加解密算法,以及提供了相应的示例代码。记得在实际应用中,要注意密钥的安全管理和合法使用,以保障数据的安全性。要使用3DES算法进行加解密,我们首先需要生成一个合适的密钥。在下面的代码中,我们使用SecureRandom类生成一个随机密钥,并将其转换为DESedeKeySpec对象。在本例中,我们将使用Java的内置库javax.crypto来实现3DES算法。Java实现3DES加解密算法。

CodeShiftZ的博客 855

【算法】Java实现3DES算法

3DES(Triple Data Encryption Standard)是对DES算法的增强和扩展,也称为TDES或Triple DES。它是一种对称密钥加密算法,通过对数据应用DES算法三次来增加安全性。3DES使用两个或三个不同的密钥对数据进行加密和解密。将明文数据分成64位的块。使用密钥1对第一个64位块进行DES加密,得到中间结果。使用密钥2对中间结果进行DES解密。使用密钥3(如果使用三个密钥)对上一步得到的结果再次进行DES加密。

分享Java硬核干货 1万+

JAVA实现3DES加密解密

NULL 博文链接:https://ping2010.iteye.com/blog/1571517

3DES 加密

3DES 加密工具

Java技术乐园 2830

Java实现的3des加密解密工具类示例

主要介绍了Java实现的3des加密解密工具类,结合完整实例形式分析了3des加密解密的具体步骤与相关操作技巧,需要的朋友可以参考下

国产化办公新选择:在银河麒麟V10上部署ToDesk远程桌面

本文详细介绍了在国产操作系统银河麒麟V10上部署ToDesk远程桌面的完整指南。作为国产远程控制工具,ToDesk在连接速度、系统适配性和用户体验方面表现优异,特别适合国产化办公场景。文章包含X86和ARM架构的安装步骤、常见问题排查及性能优化技巧,帮助用户高效实现远程办公。

weixin_33742618的博客 233

Java中的DES和3DES加密算法详解

DES加密算法的安全性主要依赖于密钥的保密性和算法的复杂性。然而,由于DES算法使用的密钥长度较短(56位),它已经受到暴力破解攻击的威胁。因此,在实际应用中,建议使用更安全的加密算法,如AES(Advanced Encryption Standard)。AES算法提供了更大的密钥长度和更复杂的加密过程,以提供更高的安全性。

码到三十五 1万+

MySQL表名大小写敏感问题终极解决:lower_case_table_names=1不生效的3个隐藏坑

本文深入剖析了MySQL表名大小写敏感问题中,设置lower_case_table_names=1参数不生效的三个核心原因。关键在于理解该参数只能在数据库初始化前设置,并需排查配置文件优先级与正确停止服务的顺序。文章提供了从Windows迁移到Linux的完整避坑指南与验证方法,帮助DBA和开发者彻底解决这一跨平台兼容性难题。

weixin_29229055的博客 391

java 3des 24位_java 中32位秘钥长度的 3des加密方法?

java中 3des加密 默认是24位秘钥的现在需求是 32位秘钥加密尝试很多种方法 解决 结果都不正确// 密钥private final static String secretKey = "11111111111111111111111111111111";// 向量// private final static String iv = "01234567";// 加解密统一使用的编码...

weixin_29264201的博客 829

Miniconda入门:在CentOS上的安装、基本操作、目录结构、卸载

Miniconda是一个 免费的 轻量级的 conda安装程序 它只包含conda、Python、pip、zlib等基础的文件和依赖包 使用conda install命令可从Anaconda存储库中安装额外的conda包 简介 下载 安装 基本操作 虚拟环境的操作 包的操作 目录结构 卸载

ArYe 1万+

计组实验5:cache大小测量与 cache line 大小测量

前言 今天做了实验5,通过 c 语言测 cache 参数。其实按理来说挺简单的,只是我们班没给代码,纯靠自己。听说别的班有给代码 emm 因为《深入理解计算机系统》这本书上面给的代码是 Linux 平台下的,而且需要一个 fcyc2 头文件,可以在 https://github.com/fabiensanglard/CpuCacheMountainViewer 这里找到。 ⚠ 我没有在 Linux 下试过课本上面的代码。。。 我是在 win10 下测试的。。。 所以 。。。 我并不确定我的代码是否正确。

AKGWSB 's blog 1万+

java生成24位3des密钥_java生成3DES对称秘钥和RSA非对称秘钥

/*1、对称加密3DES秘钥生成*/KeyGeneratorkg=KeyGenerator.getInstance("DESede");kg.init(112);//mustbeequalto112or168System.out.println("SecretKey:");System.out.println(newBASE64Encoder().encode(kg.gener...

weixin_34886207的博客 917

MATLAB/Simulink与ThingSpeak集成:打通物联网数据与工业算法仿真的闭环

在工业算法开发与控制系统设计中,模型仿真与真实世界数据的脱节是常见的工程挑战。其核心原理在于构建一个双向数据流闭环,将虚拟的仿真模型与物理世界的传感器网络连接起来。这一技术方案的核心价值在于大幅缩短算法迭代周期,实现数据驱动的设计与验证。典型的应用场景包括数字孪生构建、预测性维护和硬件在环(HIL)测试的云端化。通过将MATLAB/Simulink这一强大的模型化设计环境,与ThingSpeak物联网云平台进行深度集成,工程师能够轻松地将实时或历史的物联网数据流直接注入仿真模型作为输入,同时将仿真结果实时回

weixin_34220179的博客 470

java 3des 32位密钥_3des,java_java 中32位秘钥长度的 3des加密方法?,3des,java - phpStudy...

java 中32位秘钥长度的 3des加密方法?java中 3des加密 默认是24位秘钥的现在需求是 32位秘钥加密尝试很多种方法 解决 结果都不正确// 密钥private final static String secretKey = "11111111111111111111111111111111";// 向量// private final static String iv = ...

weixin_39866966的博客 377

UniApp实现多端支付功能完整实现指南

支付业务流程多端支付实现安全性保障异常处理最佳实践支付基础知识多端支付实现统一支付封装安全性处理异常处理最佳实践根据具体业务场景选择合适的支付方式注重安全性和用户体验做好异常处理和日志记录持续优化和改进支付流程关注我,持续分享前端项目开发经验!

weixin_63454527的博客 2128

混合编程实战:C#集成C++ PCL点云处理库,打造跨语言动态链接库

本文详细介绍了C#与C++混合编程实战,重点讲解如何通过动态链接库(DLL)集成C++ PCL点云处理库,实现跨语言协作。内容涵盖环境配置、PCL功能封装、C#调用DLL的完整方案,以及性能优化和错误处理等进阶技巧,帮助开发者高效处理大规模点云数据,提升工业软件开发效率。

weixin_42620913的博客 382

java rsa加密3des密钥长度_java生成3DES对称秘钥和RSA非对称秘钥

/*1、对称加密3DES秘钥生成*/KeyGeneratorkg=KeyGenerator.getInstance("DESede");kg.init(112);//mustbeequalto112or168System.out.println("SecretKey:");System.out.println(newBASE64Encoder().encode(kg.gener...

weixin_39976951的博客 309

PCL 基于超体素的点云分割【2024最新版】

点云超体素分割原理介绍、代码实现以及如何做到将每一个超体素内的点进行单独保存而不造成点云缺失的方法。博客长期更新,本文最近一次更新时间为:2024年12月29日。

点云侠的博客 36万+

[转]java生成3DES对称秘钥和RSA非对称秘钥

[code="java"] /*1、对称加密3DES秘钥生成*/ KeyGenerator kg = KeyGenerator.getInstance("DESede"); kg.init(112);//must be equal to 112 or 168 System.out.println("SecretKey:"); System.out.println(new BASE64En...

方豆作坊 774

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

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java生成3DES对称秘钥和RSA非对称秘钥

/*1、对称加密3DES秘钥生成*/ KeyGenerator kg = KeyGenerator.getInstance("DESede"); kg.init(112);//must be equal to 112 or 168 System.out.println("SecretKey:"...

355

假人有限元模型

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

java ios 3des_Java生成3DES对称秘钥和RSA非对称秘钥

/*1、对称加密3DES秘钥生成*/KeyGenerator kg = KeyGenerator.getInstance("DESede");kg.init(112);//must be equal to 112 or 168System.out.println("SecretKey:");System.out.println(new BASE64Encoder().encode(kg.gener...

weixin_36090805的博客 130

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java中secretkey,java生成秘钥key,并保存秘钥到文件中

本例子采用的是Java的对称加密其中的一种方式(3DES),其他的加密方式也类似。生成一个key秘钥,发送方使用生成的key秘钥进行加密操作,然后把生成的key秘钥保存到文件中,提供给需要解密的一方使用key秘钥进行解密操作。(期间一定要保存key秘钥不被泄露)package com.superaccount.modules.user.controller;import java.io.Buffe...

weixin_39601194的博客 4170

java生成3DES对称秘钥和RSA非对称秘钥

为什么80%的码农都做不了架构师?>>> ...

weixin_34167043的博客 175

3DES将16位秘钥升级为24位

C#下TripleDES默认支持16位和24位的秘钥,而Java下的DESedeKeySpec就只支持24位,其实怎么说呢,按3DES规范要求,的确其秘钥应该是24位而不是16位的,但16位秘钥可以按 前8位+后8位+前8位 的规则来升级成24位的秘钥,所以我们只需要简单的通过数组的Copy就可以将16位秘钥升级为24位秘钥,下面是相应的代码,Java和C#可以说完全一样,C#16位秘钥加密的结

sky 胡萝卜星星 5462

python 3des加密_3DES,32位长秘钥加密

一般3des加密的秘钥是一个24位的字节数组,但是很多遇到32位字符串秘钥,不知道怎么去用,其实只是经过几步转化就可以了。希望这篇文章对大家有帮助或者带来灵感比如:秘钥:33333333333333333333333333333333要加密内容:06111111FFFFFFFF加密后内容:66322DAA27A95807java代码importjavax.crypto.Cipher;import...

weixin_39777543的博客 1230
上一篇: java中RSA数字证书生成,jks文件生成以及读取。
下一篇: java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher
S_First
博客等级 码龄9年 3粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值