<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
    主站蜘蛛池模板: 久久久久久国产精品免费免费| 久久久受www免费人成| 日本h在线精品免费观看| 亚洲资源在线观看| 国产精品永久免费视频| 亚洲午夜精品一级在线播放放| 国产精品亚洲综合网站| 亚洲成a人片在线观看精品| 在线视频精品免费| 国产成+人+综合+亚洲专| 成人au免费视频影院| 久久亚洲AV成人无码国产最大| 在线观看永久免费视频网站| 日韩免费码中文在线观看| 国产性爱在线观看亚洲黄色一级片| 成年免费a级毛片| 亚洲va久久久噜噜噜久久天堂| 久久成人无码国产免费播放| 亚洲理论片在线中文字幕| 五月婷婷综合免费| 在线观看亚洲专区| 亚洲韩国精品无码一区二区三区| 日本卡1卡2卡三卡免费| 亚洲一级毛片在线观| 国产又黄又爽又猛的免费视频播放 | 亚洲色偷拍区另类无码专区| 中文字幕手机在线免费看电影| 亚洲ⅴ国产v天堂a无码二区| 国产片AV片永久免费观看| 国产亚洲综合视频| 亚洲精品少妇30p| 97碰公开在线观看免费视频| 豆国产96在线|亚洲| 亚洲AV无码精品色午夜果冻不卡| 波多野结衣中文字幕免费视频| 粉色视频免费入口| 亚洲色图视频在线观看| 国产a级特黄的片子视频免费| 久久精品国产这里是免费| 亚洲狠狠色丁香婷婷综合| 亚洲午夜久久久影院|