文档章节

Des3加密解密

好名字都被猪用了
 好名字都被猪用了
发布于 2016/04/11 14:32
字数 339
阅读 37
收藏 4
点赞 1
评论 0

实测  没问题

package cn.com.test;


import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;




public class Des3 {
    private static final String Algorithm = new String("DESede"); //算法标识
    private SecretKey deskey; //密钥


    public Des3() throws Exception {
        KeyGenerator keygen = KeyGenerator.getInstance(Algorithm);
        deskey = keygen.generateKey();
    }


    public Des3(byte[] key) throws Exception {
        if (key == null) {
            throw new Exception("input key can not null");
        }
        if (key.length != 24) {
            throw new Exception("key length is error, key length must 24 bytes");
        }


        SecretKeySpec destmp = new SecretKeySpec(key, Algorithm);
        deskey = destmp;
    }


    public byte[] getKey() {
        return deskey.getEncoded();
    }


    /**
     * 加密数据
     * @param data byte[]
     * @return byte[]
     */
    public byte[] encrypt(byte[] data) throws Exception {
        Cipher c1 = Cipher.getInstance(Algorithm);
        c1.init(Cipher.ENCRYPT_MODE, deskey);
        return c1.doFinal(data);


    }


    /**
     * 解密数据
     * @param data byte[]
     * @return byte[]
     */
    public byte[] decrypt(byte[] data) throws Exception {
        Cipher c1 = Cipher.getInstance(Algorithm);
        c1.init(Cipher.DECRYPT_MODE, deskey);
        return c1.doFinal(data);
    }
}


package cn.com.test;




import com.ibm.misc.BASE64Decoder;
import com.ibm.misc.BASE64Encoder;


public class Des3Util {
public static String decryptBy3Des(String encryptStr, String key) throws Exception {


Des3 des = new Des3(key.getBytes());
BASE64Decoder base64decoder = new BASE64Decoder();
byte[] encryptBytes = base64decoder.decodeBuffer(encryptStr);
byte[] decryptBytes = des.decrypt(encryptBytes);
return new String(decryptBytes,"UTF-8");
}
public static String encryptBy3Des(String str, String key) throws Exception {
Des3 des = new Des3(key.getBytes());
byte[] encryptBytes=des.encrypt(str.getBytes("UTF-8"));
BASE64Encoder  base64encoder=new BASE64Encoder();
String dd=    base64encoder.encode(encryptBytes);;
return dd;
}


}


测试类

package cn.com.test;


import java.util.HashMap;
import java.util.Map;


import com.alibaba.fastjson.JSON;


public class JiamiTest {
public static void main(String[] args) throws Exception {

Map<String,String> jiamimap=new HashMap<String, String>();
jiamimap.put("birthday","2016-01-08");
jiamimap.put("card","12345689522");
jiamimap.put("cardType","4");
jiamimap.put("community_id","1");
jiamimap.put("community_name","一般社康");
jiamimap.put("dept_id","223");
jiamimap.put("dept_name","骨科");
jiamimap.put("doctor_name","张三");
jiamimap.put("phone","12345678944");
jiamimap.put("querytime","xxxxxx");
jiamimap.put("return_url","xxxx");
jiamimap.put("sex","女");
jiamimap.put("token","4028800b51e760b40151e781bb44004b");
jiamimap.put("truename","张四");
jiamimap.put("user","shekang");
String json =JSON.toJSONString(jiamimap);
    String a=Des3Util.encryptBy3Des(json, "abcabcabcabcabcabcabcabc");
    System.out.println("加密后的字符串++++++++++"+a);
    String b=Des3Util.decryptBy3Des(a, "abcabcabcabcabcabcabcabc");
    System.out.println("解密后的字符串——————————"+b);

   }


}



© 著作权归作者所有

共有 人打赏支持
好名字都被猪用了
粉丝 0
博文 15
码字总数 5666
作品 0
程序员
用openssl对文件加密及解密

Openssl是一个开源的用以实现SSL协议的产品,它主要包括了三个部分:密码算法库、应用程序、SSL协议库。Openssl实现了SSL协议所需要的大多数算法。 下面我将单介绍使用Openssl进行文件的对称...

独钓渔
2014/07/24
0
0
初接触Linux,加密、解密、OpenSSLl的基本应用及CA的实现过程

当前这个社会信息是相当强大的武器,保护武器显得尤为重要,今天给大家介绍加密解密相关的内容。 一、加密解密的分类 ㈠、对称加密 加密方、解密方都是用同一个口令,加密算法对固定大小的块...

王丶Blue
2014/03/14
0
0
加密、解密、openssl的基本应用及CA的实现过程

为确保信息和资源的安全,密码的重要性不言而喻;网络时代,数据的安全尤为重要。 《一》加密解密 数据加密的方式有三种:对称加密,非对称加密,单向加密 (1)对称加密 是用算法加口令的一...

baglinux
2014/03/09
0
0
Android与Server端的传输加密

1、必须找一个在Android和JDK上通用的加密算法,后面发现了http://www.cnblogs.com/hjtdlx/p/3926141.html这篇文章,试了一下,是可以用的。 2、Android和Server端的传输采用JSON格式,除了加...

echola
2015/09/07
223
1
关于加密的问题,求高手解答

请问给位大大,现在我想做一个android和java的系统。在两端之间相互进行数据传输,要求在过程中现将数据加密,然后传输,在另一端接收后解密。暂时支持des,des3,aes三种方式,而且加密方式要...

yahooooo
2013/03/26
196
5
openssl生成pem

首先得安装OpenSSL软件包openssl,安装了这个软件包之后,我们可以做这些事情: o Creation of RSA, DH and DSA Key Parameters # 创建密钥 key o Creation of X.509 Certificates, CSRs and...

rock912
2016/09/14
23
0
在php中使用对称加密DES3,开发银行卡绑定,实名验证

对称加密:对称加密是一种数据加密算法,对一组数据的加密和解密都使用一样的密钥(key),可以有效保护金融数据,常见的对称加密有DES,3DES,AES、RC2、RC4、RC5。 DES3: 对DES算法的组合,指定...

皇冠小丑
06/03
0
0
openssl生成pem

首先得安装OpenSSL软件包openssl,安装了这个软件包之后,我们可以做这些事情: o Creation of RSA, DH and DSA Key Parameters # 创建密钥 key o Creation of X.509 Certificates, CSRs and...

miaojiangmin
2016/10/30
4
0
openssl的应用及创建CA

openssl命令行工具: 众多的子命令实现各种安全加密功能; ]# openssl ? 显示的内容有 Standard commands(标准命令) enc, dgst, ca, req, genrsa, rand, rsa, x509, passwd, ... Message Di...

Vayne36
06/26
0
0
OpenSSL命令行工具

数据的加密解密对于Linux系统来说,是至关重要的一个概念,必须懂的对数据进行保护,上次我们详细说了关于数据加密的种种方式,如公钥加密,单向加密,密钥交换等,以及认证机构CA的存在;而...

wujunqi1996
2017/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql 主从复制中遇到的错误!

。。。。。

万建宁
8分钟前
0
0
DUBBO 详细介绍

摘要: 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制. RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能 Registry: 服务目录框架...

明理萝
19分钟前
0
1
4 个快速的 Python 编译器 for 2018

简评:Python 和其他的解释型语言一样经常被吐槽性能不行,所以开发人员为了提升性能创建了不少编译器,本文则选取其中的四个做了基准测试。 Python 其实是一种相当快的语言,但它并不像编译...

极光推送
22分钟前
0
0
spring boot注册多个MQ服务器的问题

关于注册到多个MQ源的文章已经有很多了,这里记录一下声明queue的坑; 如果使用注册bean的方式声明queue,会导致声明的queue同时被注册到所有的MQ源上; //如果使用下面的声明方式,que...

placeholder
23分钟前
0
0
Java面试基础篇——第九篇:BIO,NIO,AIO的区别

现在IO模型主要分三类:BIO(同步阻塞IO),NIO(同步非阻塞IO),AIO()。 先来看看BIO。 1. BIO 服务端接受到请求后,要指派或新建一个线程去处理客户端的IO请求,直到收到断开连接的指令。这么做...

developlee的潇洒人生
28分钟前
0
0
@RequestMapping @ResponseBody 和 @RequestBody 用法与区别

1.@RequestMapping 国际惯例先介绍什么是@RequestMapping,@RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为...

特拉仔
30分钟前
1
0
基于 HTML5 结合互联网+ 的 3D 隧道

前言 目前,物资采购和人力成本是隧道业发展的两大瓶颈。比如依靠民间借贷,融资成本很高;采购价格不透明,没有增值税发票;还有项目管控和供应链管理的问题。成本在不断上升,利润在不断下...

xhload3d
32分钟前
0
0
济南小程序热度分析

原文链接:http://www.jnqianle.cn/company/2072.html

tianma3798
33分钟前
1
0
大数据软件

beats 采集 kafka spark hive es grafana zeppelin

ArlenXu
35分钟前
0
0
Mac item2常用快捷键

标签 新建标签:command + t 关闭标签:command + w 切换标签:command + 数字 command + 左右方向键 切换全屏:command + enter 查找:command + f 分屏 水平分屏:command + d 垂直分屏:c...

说回答
39分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部