当前位置:首页 > 开发 > 编程语言 > 加密解密 > 正文

DES加密工具类

发表于: 2013-10-08   作者:songchuanlu   来源:转载   浏览次数:
摘要: import java.security.Provider; import java.security.Security; import javax.crypto.Cipher; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.SecretKeySpec; /** * DES加密工具类 *
import java.security.Provider;
import java.security.Security;

import javax.crypto.Cipher;
import javax.crypto.spec.DESKeySpec;
import javax.crypto.spec.SecretKeySpec;

/**
 * DES加密工具类
 * 
 * @author 宋陆
 * @date 2013-10-8
 * @version 1.0
 */
public class DesUtil {

    private static final String KEY = "chuanlu";

    public static String encrypt(String strDataToEncrypt) {
        byte[] key = KEY.getBytes();

        Provider sunJCE = new com.sun.crypto.provider.SunJCE();
        Security.addProvider(sunJCE);

        String strAlgorithm = "DES";
        SecretKeySpec keySpec = null;
        DESKeySpec deskey = null;
        String strResult = "";

        try {
            deskey = new DESKeySpec(key);
            keySpec = new SecretKeySpec(deskey.getKey(), "DES");

            Cipher cipher = Cipher.getInstance(strAlgorithm);

            cipher.init(Cipher.ENCRYPT_MODE, keySpec);

            byte[] utf8 = strDataToEncrypt.getBytes("UTF8");

            byte[] enc = cipher.doFinal(utf8);

            strResult = new sun.misc.BASE64Encoder().encode(enc);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return strResult;
    }

    /**
     * This function decrypt a given string using the DES algorithm.
     * 
     * @param strDataToDecrypt
     *            The String to decrypt
     * @param strKey
     *            The generated key used to decrypt
     * @return The encrypted string
     */
    public static String decrypt(String strDataToDecrypt) {
        byte[] key = KEY.getBytes();
        Provider sunJCE = new com.sun.crypto.provider.SunJCE();
        Security.addProvider(sunJCE);

        String strAlgorithm = "DES";
        SecretKeySpec keySpec = null;
        DESKeySpec deskey = null;
        String strResult = "";

        try {
            deskey = new DESKeySpec(key);
            keySpec = new SecretKeySpec(deskey.getKey(), "DES");

            Cipher cipher = Cipher.getInstance(strAlgorithm);
            cipher.init(Cipher.DECRYPT_MODE, keySpec);

            byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(strDataToDecrypt);

            byte[] utf8 = cipher.doFinal(dec);

            return new String(utf8, "UTF8");
        }

        catch (Exception e) {
            e.printStackTrace();
        }

        return strResult;
    }
}

 

DES加密工具类

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
1,DES加密解密工具类 package spring3.pripertyFile; import java.security.Key; import java.secu
原文地址: http://www.cnblogs.com/chnking/archive/2007/08/14/855600.html 一、 对称加密 对称加
一、 对称加密 对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信
一、 对称加密 对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信
DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准 ,是1972年美国IBM 公司研制的对称
Simplified Data Encryption Standard S-DES 是一个供教学的非安全的加密算法,它与DES的特性和结构
一、 对称加密 对称加密,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信
  从 N 久前写的代码中淘到以前写的一些加密解密的代码,简单整理成一个类,做了一个加密解密的小
DES加密(支持ARC与MRC) 源文件: YXCrypto.h 与 YXCrypto.m // // YXCrypto.h // 用秘钥给字符串
  好久没写博客了,正好趁着实现网络工程与安全的DES算法的功夫,把代码发上来。   DES的介绍可
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号