博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中加密解密工具类
阅读量:6379 次
发布时间:2019-06-23

本文共 1854 字,大约阅读时间需要 6 分钟。

在工作中经常遇到需要加密、解密的场景。例如用户的手机号等信息,在保存到数据库的过程中,需要对数据进行加密。取出时进行解密。

 

public class DEStool {    private String sKey;    public DEStool() {        //默认构造函数提供默认密钥        sKey = "des@#$12";    }    public DEStool(String securityKey) {        if (securityKey.length() < 8) {            throw new IllegalArgumentException("密钥长度至少8位");        }        this.sKey = securityKey;    }    private Cipher makeCipher() throws Exception{        return Cipher.getInstance("DES");    }    private SecretKey makeKeyFactory() throws Exception{        SecretKeyFactory des = SecretKeyFactory.getInstance("DES");        SecretKey secretKey = des.generateSecret(new DESKeySpec(sKey.getBytes()));        return secretKey;    }    public String encrypt(String text) throws Exception{        Cipher cipher = makeCipher();        SecretKey secretKey = makeKeyFactory();        cipher.init(Cipher.ENCRYPT_MODE, secretKey);        return new String(Base64.encodeBase64(cipher.doFinal(text.getBytes())));    }    public String decrypt(String text) throws Exception{        Cipher cipher = makeCipher();        SecretKey secretKey = makeKeyFactory();        cipher.init(Cipher.DECRYPT_MODE, secretKey);        return new String(cipher.doFinal(Base64.decodeBase64(text.getBytes())));    }    public static void main(String[] args) {        DEStool tool = new DEStool("nice1234");        String content = "中国";        System.out.println("原文内容:"+content);        String encrpt = null;        try {            encrpt = tool.encrypt(content);        } catch (Exception e) {            e.printStackTrace();        }        System.out.println("加密后:"+encrpt + ", 长度=" + encrpt.length());        String descript =null;        try {            descript = tool.decrypt(encrpt);        } catch (Exception e) {            e.printStackTrace();        }        System.out.println("解密后:" + descript);    }}

 

转载地址:http://bdqqa.baihongyu.com/

你可能感兴趣的文章
POJ NOI0113-03 八进制小数(PKU2765)
查看>>
寄存器篇学习1
查看>>
委托的定义和使用入门
查看>>
事务一次处理多条SQL语句
查看>>
SQL2008 的收缩日志
查看>>
Linux驱动调试中关于ioctl的问题
查看>>
Linux文件系统 硬链接与符号链接
查看>>
var functionName = function() {} vs function functionName() {}
查看>>
java_有秒计时的数字时钟
查看>>
使用SQL SERVER 来自动发送邮件
查看>>
我的架构设计~用层关系图说说mvc,mvvm,soa,ddd
查看>>
架构,改善程序复用性的设计(目录)
查看>>
Python 函数递归-三元表达式-列表生成式-字典生成式-匿名函数-内置函数
查看>>
二进制与字符编码
查看>>
算法图解之二分查找
查看>>
如何去除小程序button的边框
查看>>
JavaScript Data.parse()转化时间戳安卓和ISO不兼容
查看>>
The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar
查看>>
shell脚本的执行方式
查看>>
Microsoft Report Designer Undocumented Error 解决方案
查看>>