JAVA—咖啡館

          ——?dú)g迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來的快樂!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問題請(qǐng)與我聯(lián)系。

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

            1. MD5加密,常用于加密用戶名密碼,當(dāng)用戶驗(yàn)證時(shí)。

           
           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加密允許解密。常用于文本內(nèi)容的加密。

           
            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) 評(píng)論(0)  編輯  收藏 所屬分類: 【Java知識(shí)】
          主站蜘蛛池模板: 密云县| 贡觉县| 晋宁县| 正蓝旗| 崇信县| 奉节县| 襄垣县| 沂水县| 南充市| 涿鹿县| 洪洞县| 唐海县| 鄂尔多斯市| 攀枝花市| 鹿泉市| 额尔古纳市| 石门县| 广丰县| 靖宇县| 库车县| 北辰区| 四川省| 明水县| 博客| 宜城市| 建宁县| 永靖县| 古丈县| 任丘市| 信阳市| 娱乐| 通许县| 景泰县| 峡江县| 金沙县| 榆中县| 永宁县| 平泉县| 武义县| 奉新县| 芜湖县|