# desSys **Repository Path**: cjlhjs/desSys ## Basic Information - **Project Name**: desSys - **Description**: 对称加密解密相关实践 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-10-18 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # desSys ** ### 开发语言及开发工具 **
操作系统: windows 10
Web服务器:Tomcat 9.0
Java版本: JDK 1.8
开发工具: IntelliJ IDEA 2016.3.4(64)


** ### 字符串加密 **
由于DES加密和解密过程中,密钥长度都必须是8的倍数,所以应该在后台通过字符串处理,将密钥改为8的倍数,初始化模式为DES加密模式。然后将需要加
密的字符串转化为byte数组,再进行加密。加密得到的byte数组转化为密文字符串,返回前台输出。传入待加密字符串和加密密钥,通过调用
getstrByte()方法得到字符串的byte数组,然后使用substring方法截取前8位,并使用toUpperCase方法,将小写字符转为大写,然后使用ASCII统
一编码把密钥字符串转为字节数组。使用CBC模式初始化Cipher对象,然后使用密钥初始化DESKeySpec对象,为密钥创建一个指定的 DESSede key。
初始化密钥工厂DESKeySpec 并指定使用DES加密方法。再调用generateSecret方法生成一个 DESede 密钥。初始化cipher对象使用加密模式,调
用doFinal方法执行加密操作,最终传出加密后的字符串jmstr。


** ### 字符串解密 **

传入待解密密文和密钥,通过convertHexString()方法将密文字符串转为byte数组,然后使用substring方法截取前8位,并使用toUpperCase方法,
将小写字符转为大写,然后使用ASCII统一编码把密钥字符串转为字节数组。使用CBC模式初始化Cipher对象,然后使用密钥初始化DESKeySpec对象,
为密钥创建一个指定的 DESSede key。初始化密钥工厂DESKeySpec 并指定使用DES加密方法。再调用generateSecret方法生成一个 DESede 密钥。
初始化cipher对象使用解密模式,调用doFinal方法执行加密操作,最终传出解密后的字符串。


### **项目演示 **



![输入图片说明](https://gitee.com/uploads/images/2017/1018/225305_e01abfa6_1273668.png "图片1.png")

![输入图片说明](https://gitee.com/uploads/images/2017/1018/225319_1d91997f_1273668.png "图片3.png")

![输入图片说明](https://gitee.com/uploads/images/2017/1018/225328_52f5960c_1273668.png "图片4.png")

![输入图片说明](https://gitee.com/uploads/images/2017/1018/225339_9ed3e7aa_1273668.png "图片5.png")

![输入图片说明](https://gitee.com/uploads/images/2017/1018/225348_0fb744a5_1273668.png "图片6.png")