Tiger_Dog

Java使用DES加密字符串

Java使用DES加密字符串

编号:A3GS_TJ20100108004

描述

本文讲述了如何在Java下使用DES加密字符串。

例子

NO

技术实现:     

导入包

import java.io.UnsupportedEncodingException;

import javax.crypto.Cipher;

import javax.crypto.IllegalBlockSizeException;

import javax.crypto.SecretKey;

import javax.crypto.KeyGenerator;

import javax.crypto.SecretKey;

实现代码

1.  创建DesEncrypter加解密类

public class DesEncrypter {

    Cipher ecipher;

    Cipher dcipher;

 

    DesEncrypter(SecretKey key) {

        try {

            ecipher = Cipher.getInstance("DES");

            dcipher = Cipher.getInstance("DES");

            ecipher.init(Cipher.ENCRYPT_MODE, key);

            dcipher.init(Cipher.DECRYPT_MODE, key);

 

        } catch (javax.crypto.NoSuchPaddingException e) {

        } catch (java.security.NoSuchAlgorithmException e) {

        } catch (java.security.InvalidKeyException e) {

        }

    }

 

    public String encrypt(String str) {

        try {

            // Encode the string into bytes using utf-8

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

 

            // Encrypt

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

 

            // Encode bytes to base64 to get a string

            return new sun.misc.BASE64Encoder().encode(enc);

        } catch (javax.crypto.BadPaddingException e) {

        } catch (IllegalBlockSizeException e) {

        } catch (UnsupportedEncodingException e) {

        } catch (java.io.IOException e) {

        }

        return null;

    }

 

    public String decrypt(String str) {

        try {

            // Decode base64 to get bytes

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

 

            // Decrypt

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

 

            // Decode using utf-8

            return new String(utf8, "UTF8");

        } catch (javax.crypto.BadPaddingException e) {

        } catch (IllegalBlockSizeException e) {

        } catch (UnsupportedEncodingException e) {

        } catch (java.io.IOException e) {

        }

        return null;

    }

}

2.  测试加解密类

public class Test {

    public static void main(String[] args) {

       try {

           // Generate a temporary key. In practice, you would save this key.

           // See also Encrypting with DES Using a Pass Phrase.

           SecretKey key = KeyGenerator.getInstance("DES").generateKey();

 

           // Create encrypter/decrypter class

           DesEncrypter encrypter = new DesEncrypter(key);

 

           // Encrypt

           String encrypted = encrypter.encrypt("Don't tell anybody!");

           System.out.println("加密后数据:"+encrypted);

 

           // Decrypt

           String decrypted = encrypter.decrypt(encrypted);

           System.out.println("解密后数据:"+decrypted);

       } catch (Exception e) {

       }

    }

}

posted on 2011-04-11 10:21  Tiger_Dog  阅读(2042)  评论(0)    收藏  举报

导航