<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢(mèng)幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評(píng)論 :: 0 Trackbacks

     

    package com.roadway.sms.dao.test;

    import java.security.KeyFactory;
    import java.security.KeyPair;
    import java.security.KeyPairGenerator;
    import java.security.PrivateKey;
    import java.security.PublicKey;
    import java.security.spec.PKCS8EncodedKeySpec;
    import java.security.spec.X509EncodedKeySpec;

    import javax.crypto.Cipher;

    public class RSAUtil
    {
        
        
    public static void main(String[] args) throws Exception
        
    {
            String[] ppk 
    = RSAUtil.getKeyPair();
            System.out.println(
    "公鑰: " + ppk[0]);
            System.out.println(
    "私鑰: " + ppk[1]);
            
            String content 
    = "123456惠萬鵬~!@#$%^&*()_+|";
            System.out.println(
    "原字符串:    " + content);
            
            String encryptStr 
    = RSAUtil.encrypt(ppk[0], content);
            System.out.println(
    "加密后字符串: " + encryptStr);
            
            String decryptStr 
    = RSAUtil.decrypt(ppk[1], encryptStr);
            System.out.println(
    "解密后字符串: " + decryptStr);
        }

        
        
    public static String[] getKeyPair()
        
    {
            String[] publicPrivateKey 
    = nullnull };
            
    try
            
    {
                KeyPairGenerator keyPairGenerator 
    = KeyPairGenerator.getInstance("RSA");
                keyPairGenerator.initialize(
    1024);
                KeyPair keyPair 
    = keyPairGenerator.genKeyPair();
                publicPrivateKey[
    0= parseByte2HexStr(keyPair.getPublic().getEncoded());
                publicPrivateKey[
    1= parseByte2HexStr(keyPair.getPrivate().getEncoded());
            }

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

            
    return publicPrivateKey;
        }

        
        
    public static String encrypt(String publicKeyCode, String content)
        
    {
            String encryptRes 
    = null;
            
    try
            
    {
                Cipher cipher 
    = Cipher.getInstance("RSA");
                X509EncodedKeySpec keySpec 
    = new X509EncodedKeySpec(RSAUtil.parseHexStr2Byte(publicKeyCode));
                KeyFactory keyFactory 
    = KeyFactory.getInstance("RSA");
                PublicKey pubKey 
    = keyFactory.generatePublic(keySpec);
                cipher.init(Cipher.ENCRYPT_MODE, pubKey);
                
    byte[] publicKeyEncryptText = cipher.doFinal(content.getBytes());
                encryptRes 
    = parseByte2HexStr(publicKeyEncryptText);
            }

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

            
    return encryptRes;
        }

        
        
    public static String decrypt(String privateKeyCode, String content)
        
    {
            String decryptRes 
    = null;
            
    try
            
    {
                Cipher cipher 
    = Cipher.getInstance("RSA");
                PKCS8EncodedKeySpec pkcs8KeySpec 
    = new PKCS8EncodedKeySpec(RSAUtil.parseHexStr2Byte(privateKeyCode));
                KeyFactory keyFactory2 
    = KeyFactory.getInstance("RSA");
                PrivateKey priKey 
    = keyFactory2.generatePrivate(pkcs8KeySpec);
                cipher.init(Cipher.DECRYPT_MODE, priKey);
                
    byte[] privateKeyDecryptText = cipher.doFinal(RSAUtil.parseHexStr2Byte(content));
                decryptRes 
    = new String(privateKeyDecryptText);
            }

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

            
    return decryptRes;
        }

        
        
    private static String parseByte2HexStr(byte buf[])
        
    {
            StringBuffer sb 
    = new StringBuffer();
            
    for (int i = 0; i < buf.length; i++)
            
    {
                String hex 
    = Integer.toHexString(buf[i] & 0xFF);
                
    if (hex.length() == 1)
                
    {
                    hex 
    = '0' + hex;
                }

                sb.append(hex.toUpperCase());
            }

            
    return sb.toString();
        }

        
        
    private static byte[] parseHexStr2Byte(String hexStr)
        
    {
            
    if (hexStr.length() < 1)
                
    return null;
            
    byte[] result = new byte[hexStr.length() / 2];
            
    for (int i = 0; i < hexStr.length() / 2; i++)
            
    {
                
    int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
                
    int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
                result[i] 
    = (byte) (high * 16 + low);
            }

            
    return result;
        }

    }
    posted on 2010-05-28 16:31 HUIKK 閱讀(268) 評(píng)論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲精品无码成人| 永久免费av无码不卡在线观看| 青草久久精品亚洲综合专区| 日韩大片在线永久免费观看网站| 中文在线观看永久免费| 91制片厂制作传媒免费版樱花| 美丽姑娘免费观看在线观看中文版| 亚洲AV无码一区二区三区电影 | 国产精品亚洲一区二区三区在线观看| 亚洲日韩乱码久久久久久| 亚洲AV日韩AV鸥美在线观看| 亚洲精品自产拍在线观看| 国产精品亚洲不卡一区二区三区| 国产a v无码专区亚洲av| 亚洲A丁香五香天堂网| 久久久久亚洲精品无码网址 | 99久久综合国产精品免费| 91精品导航在线网址免费| 精选影视免费在线 | 一级毛片试看60分钟免费播放| 国产亚洲视频在线播放大全| 国产无限免费观看黄网站| 99久热只有精品视频免费观看17| 国产成人精品久久免费动漫| 永久免费看bbb| 国产亚洲一区二区三区在线观看| 亚洲欧洲第一a在线观看| 免费无码AV一区二区| 99国产精品免费视频观看| 好爽…又高潮了毛片免费看| 国产专区一va亚洲v天堂| 久久久久亚洲AV无码专区首JN| 国产亚洲精品美女久久久久久下载| 国产在线观看免费视频软件| 日本大片在线看黄a∨免费| 亚洲an天堂an在线观看| 一个人看的hd免费视频| 欧美好看的免费电影在线观看| 亚洲妇熟XXXX妇色黄| 一区二区三区视频免费观看| 成年丰满熟妇午夜免费视频|