我的编程空间,编程开发者的网络收藏夹
学习永远不晚

3DES_ECB_加密解密

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

3DES_ECB_加密解密

import java.util.ArrayList;
import java.util.List;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
 public class SecretUtils { 
     //根秘钥
     final static byte[] keyBytes = Util.hexStringToByteArray("404142434445464748494A4B4C4D4E4F48494A4B4C4D4E4F");
     private static final String Algorithm = "DESede";    //3DES算法  
      
     private static byte[] ivs = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }; 
     private static IvParameterSpec iv = new IvParameterSpec(ivs);
     
        public static byte[] encryptMode(byte[] class="lazy" data-src,byte[] key) {
            try {
                System.out.println("没到8bytes:"+Util.byteArrayToHexString(class="lazy" data-src));
                SecretKey deskey = new SecretKeySpec(key, Algorithm);    //生成密钥21 
                Cipher c1 = Cipher.getInstance("DESede/ECB/NoPadding");    //实例化负责加密/解密的Cipher工具类22
                c1.init(Cipher.ENCRYPT_MODE, deskey);    //初始化为加密模式23             
                return c1.doFinal(class="lazy" data-src);         } catch (java.security.NoSuchAlgorithmException e1) {
                    e1.printStackTrace();          } catch (javax.crypto.NoSuchPaddingException e2) {
                        e2.printStackTrace();          } catch (java.lang.Exception e3) {
                            e3.printStackTrace();}
                        return null;      }
        
        public static byte[] decryptMode(byte[] class="lazy" data-src ,byte[] key) {
            try {SecretKey deskey = new SecretKeySpec(key, Algorithm);
        Cipher c1 = Cipher.getInstance("DESede/ECB/NoPadding");
        c1.init(Cipher.DECRYPT_MODE, deskey);    //初始化为解密模式44            
        return c1.doFinal(class="lazy" data-src);         } catch (java.security.NoSuchAlgorithmException e1) {
            e1.printStackTrace();         } catch (javax.crypto.NoSuchPaddingException e2) {           
                e2.printStackTrace();        } catch (java.lang.Exception e3) {           
                    e3.printStackTrace();         }         return null;      }    
          
        
        private static String length_process(String class="lazy" data-src) {
            if(class="lazy" data-src.length()%16==0){
                return class="lazy" data-src;
            }else if(class="lazy" data-src.length()%16==14){
                return class="lazy" data-src+"80";
            }else{
                class="lazy" data-src+"80";
                 while(class="lazy" data-src.length()%8!=0){
                    class="lazy" data-src+="0";
                }
                return class="lazy" data-src;
            }
        }
        public static String DES_ECB_EN(String data){
            String msg = length_process(data);         
            byte[]  Util.hexStringToByteArray(msg);
             byte[] secretStr = SecretUtils.encryptMode(class="lazy" data-src,keyBytes);    //调用加密方法16               
            System.out.println("【Card Cryptogram DATA明文是】:" + msg);
            System.out.println("【Card Cryptogram 全部加密文是】:" + Util.byteArrayToHexString(secretStr));
            return Util.byteArrayToHexString(secretStr);
        }
        public static String DES_ECB_DE(String secretStr){        
            byte[] myMsg = SecretUtils.decryptMode(Util.hexStringToByteArray(secretStr),keyBytes);  //调用解密方法17        
            System.out.println("【Card Cryptogram DATA解密是】:" + Util.byteArrayToHexString(myMsg));
            return Util.byteArrayToHexString(myMsg);
        }          
        }


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

3DES_ECB_加密解密

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

3DES_ECB_加密解密

import java.util.ArrayList;import java.util.List;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.c
2023-01-31

python 加密解密

MD5  import hashlib  c = raw_input('输入字符:') #python3为input b = hashlib.md5()  b.update(c.encode(encoding='utf-8'))  
2023-01-31

Base64加密解密

一、Base64加密解密 一、前端加密 一、方法 一 const that = this;const copyruleForm = JSON.parse(JSON.stringify(that.ruleForm));const c_clus
2023-08-18

MySQL密码加密与解密

MySQL加密和解密实例详解有多种前端加密算法可用于数据加密、解密,这是一种简单的数据库级别的数据加密、解密解决方案。以MySQL数据库为例,它内建了相应的加密函数(AES_ENCRYPT() )和解密函数(AES_DECRYPT())。1.建表:建表时注意数
MySQL密码加密与解密
2022-04-04

PHP AES 加密解密

PHP 有一个使用 PHP 的 AES 方法加密和解密字符串的内置扩展。函数 openssl_encrypt() 用于加密字符串,openssl_decrypt() 用于解密字符串。在 PHP 中使用 Open SSL 函数加密和解密字符串
PHP AES 加密解密
2024-02-27

python rsa 加密解密

最近有需求,需要研究一下RSA加密解密安全;在网上百度了一下例子文章,很少有文章介绍怎么保存、传输、打印加密后的文本信息,都是千篇一律的。直接在一个脚本,加密后的文本信息赋于变量,然后立马调用解密。仔细想了一下RSA加密解密的过程,确定有二
2022-06-04

Python 加密解密算法

呃,今天来看看加密和解密,本文讨论base64和hashlib库:      来看看HASHLIB,他是一种单向摘要出定长字符串的方法:    撸代码:    In [18]: import time,hashlibIn [19]: t =
2023-01-31

oracle加密encrypt,解密decrypt

oracle加密encrypt,解密decrypt 目录 oracle加密encrypt,解密decrypt 加密 解密 oracle
oracle加密encrypt,解密decrypt
2020-05-19

SpringBoot 加密解密新招

继承HttpServletRequestWrapper,将请求中的流copy一份,复写getInputStream和getReader方法供外部使用。每次调用后的getInputStream方法都是从复制出来的二进制数组中进行获取,这个二进

Java实现加密(一)AES加解密

目录 1.背景知识2.AES简介3.AES的加密过程(AES处理单位:字节)4.Java实现4.1 生成密钥和偏移量4.2 AESUtil.java 源码4.3 执行结果4.4 线上验证 1.背景知识 在密码学中,加
2023-08-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录