欢迎光临
我们一直在努力

DES 加解密的封装和 使用的例子-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

原创:zhouxianli1978@msn.com ,欢迎喜欢java的网友加我

des加密封装

package org.jtool.desutils;import java.security.securerandom;import javax.crypto.*;import javax.crypto.spec.deskeyspec;public class desencrypt {    private byte[] deskey;    public desencrypt(byte[] deskey) {        this.deskey = deskey;    }    public byte[] doencrypt(byte[] plaintext) throws exception {        //      des算法要求有一个可信任的随机数源        securerandom sr = new securerandom();        byte rawkeydata[] = deskey;/* 用某种方法获得密匙数据 */        // 从原始密匙数据创建deskeyspec对象        deskeyspec dks = new deskeyspec(rawkeydata);        // 创建一个密匙工厂,然后用它把deskeyspec转换成        // 一个secretkey对象        secretkeyfactory keyfactory = secretkeyfactory.getinstance("des");        secretkey key = keyfactory.generatesecret(dks);        // cipher对象实际完成加密操作        cipher cipher = cipher.getinstance("des");        // 用密匙初始化cipher对象        cipher.init(cipher.encrypt_mode, key, sr);        // 现在,获取数据并加密        byte data[] = plaintext;/* 用某种方法获取数据 */        // 正式执行加密操作        byte encrypteddata[] = cipher.dofinal(data);        return encrypteddata;    }}

des解密封装

package org.jtool.desutils;import java.security.securerandom;import javax.crypto.*;import javax.crypto.spec.deskeyspec;public class desdecrypt {    private byte[] deskey;    public desdecrypt(byte[] deskey) {        this.deskey = deskey;    }    public byte[] dodecrypt(byte[] encrypttext) throws exception {        //      des算法要求有一个可信任的随机数源        securerandom sr = new securerandom();        byte rawkeydata[] = deskey; /* 用某种方法获取原始密匙数据 */        // 从原始密匙数据创建一个deskeyspec对象        deskeyspec dks = new deskeyspec(rawkeydata);        // 创建一个密匙工厂,然后用它把deskeyspec对象转换成        // 一个secretkey对象        secretkeyfactory keyfactory = secretkeyfactory.getinstance("des");        secretkey key = keyfactory.generatesecret(dks);        // cipher对象实际完成解密操作        cipher cipher = cipher.getinstance("des");        // 用密匙初始化cipher对象        cipher.init(cipher.decrypt_mode, key, sr);        // 现在,获取数据并解密        byte encrypteddata[] = encrypttext;/* 获得经过加密的数据 */        // 正式执行解密操作        byte decrypteddata[] = cipher.dofinal(encrypteddata);        return decrypteddata;    }}

des加解密使用样例

package org.jtool.desutils;/** *  */public class destest {    public static void main(string[] args) throws exception {        string key = "abcdefgh";        string value = "aabbccddee";        desencrypt desencrypt = new desencrypt(key.getbytes());        byte[] encrypttext = desencrypt.doencrypt(value.getbytes());        system.out.println("doencrypt – " + tohexstring(encrypttext));        system.out.println("doencrypt – " + new string(encrypttext));        desdecrypt desdecrypt = new desdecrypt(key.getbytes());        byte[] decrypttext = desdecrypt.dodecrypt(encrypttext);        system.out.println("dodecrypt – " + new string(decrypttext));        system.out.println("dodecrypt – " + tohexstring(decrypttext));    }    /**     * 16进制显示数据     *      * @param value 字节数组     * @return     */    public static string tohexstring(byte[] value) {        string newstring = "";        for (int i = 0; i < value.length; i++) {            byte b = value[i];            string str = integer.tohexstring(b);            if (str.length() > 2) {                str = str.substring(str.length() – 2);            }            if (str.length() < 2) {                str = "0" + str;            }            newstring += str;        }        return newstring.touppercase();    }}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » DES 加解密的封装和 使用的例子-JSP教程,Java技巧及代码
分享到: 更多 (0)

相关推荐

  • 暂无文章