JAVA—咖啡館

          ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
             1. MD5加密,常用于加密用戶名密碼,當用戶驗證時。}   }  2. SHA加密,與MD5相似的用法,只是兩者的算法不同。}   }  3. RSA加密,RAS加密允許解密。常用于文本內容的加密。

            1. MD5加密,常用于加密用戶名密碼,當用戶驗證時。

           
           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;  /** *//**
            * RSAEncrypt
            * 
            * @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;
            }
            }

          posted on 2009-01-06 15:57 rogerfan 閱讀(513) 評論(0)  編輯  收藏 所屬分類: 【Java知識】
          主站蜘蛛池模板: 湖北省| 商城县| 奎屯市| 扎兰屯市| 富锦市| 遵化市| 泰和县| 龙陵县| 麻栗坡县| 咸阳市| 隆化县| 通河县| 商丘市| 师宗县| 平安县| 宁河县| 彩票| 独山县| 峡江县| 晋州市| 香格里拉县| 厦门市| 张家川| 新邵县| 马边| 彭山县| 赞皇县| 南漳县| 柳林县| 台山市| 宽城| 临沂市| 澄城县| 建阳市| 利辛县| 项城市| 滁州市| 秭归县| 新干县| 奈曼旗| 和硕县|