首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java中惯用的加密算法应用MD5,SHA,RSA

2012-12-18 
Java中常用的加密算法应用MD5,SHA,RSA?1. MD5加密,常用于加密用户名密码,当用户验证时。未进行变相加密,只

Java中常用的加密算法应用MD5,SHA,RSA

?

1. MD5加密,常用于加密用户名密码,当用户验证时。

未进行变相加密,只是让让初学者更好的了解MessageDigest方法的加密用法!

protected byte[] encrypt(byte[] obj) ...{    try ...{        MessageDigest md5 = MessageDigest.getInstance("MD5");            md5.update(obj);        return md5.digest();    } catch (NoSuchAlgorithmException e) ...{        e.printStackTrace();    }}
?

2. SHA加密,与MD5相似的用法,只是两者的算法不同。

protected byte[] encrypt(byte[] obj) ...{    try ...{        MessageDigest sha = MessageDigest.getInstance("SHA");            sha.update(obj);        return sha.digest();    } catch (NoSuchAlgorithmException e) ...{        e.printStackTrace();    }}
?

3. RSA加密,RAS加密允许解密。常用于文本内容的加密。

import java.security.KeyPair;import java.security.KeyPairGenerator;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import javax.crypto.Cipher;/** *//** * <b>RSAEncrypt</b> * <p> * @author maqujun * @see */public class RSAEncrypt ...{    /** *//** * Main method for RSAEncrypt.     * @param args     */    public static void main(String[] args) ...{        try ...{            RSAEncrypt encrypt = new RSAEncrypt();                        String encryptText = "encryptText";            KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");            keyPairGen.initialize(1024);            KeyPair keyPair = keyPairGen.generateKeyPair();            // Generate keys            RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();            RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();            byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes());            byte[] de = encrypt.decrypt(privateKey,e);            System.out.println(encrypt.bytesToString(e));            System.out.println(encrypt.bytesToString(de));        } catch (Exception e) ...{            e.printStackTrace();        }    }/** *//**     * Change byte array to String.     * @return byte[]     */    protected String bytesToString(byte[] encrytpByte) ...{        String result = "";        for (Byte bytes : encrytpByte) ...{            result += (char) bytes.intValue();        }        return result;    }/** *//**     * Encrypt String.     * @return byte[]     */    protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj)  ...{        if (publicKey != null) ...{            try ...{                Cipher cipher = Cipher.getInstance("RSA");                cipher.init(Cipher.ENCRYPT_MODE, publicKey);                return cipher.doFinal(obj);            } catch (Exception e) ...{                e.printStackTrace();            }        }        return null;    }    /** *//**     * Basic decrypt method     * @return byte[]     */    protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj) ...{        if (privateKey != null) ...{                try ...{                    Cipher cipher = Cipher.getInstance("RSA");                    cipher.init(Cipher.DECRYPT_MODE, privateKey);                    return cipher.doFinal(obj);                } catch (Exception e) ...{                    e.printStackTrace();                }            }            return null;    }}
?转载:http://www.mfxk.com/tech/jsp/45036.html

?

热点排行