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

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

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

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 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) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 日本免费精品一区二区三区| 久久久久久亚洲Av无码精品专口| 亚洲乱理伦片在线观看中字| 8090在线观看免费观看| 综合亚洲伊人午夜网| 国产免费内射又粗又爽密桃视频| 亚洲国产精品国产自在在线 | 亚洲黄网站wwwwww| 在线播放免费人成毛片乱码| 国产aⅴ无码专区亚洲av| 女同免费毛片在线播放| 亚洲av永久无码精品漫画| 色www永久免费网站| 亚洲日产无码中文字幕| 一个人看的www免费视频在线观看| 亚洲精品无码AV人在线播放| 久久精品视频免费看| 亚洲精品自产拍在线观看动漫| **aaaaa毛片免费同男同女| 亚洲最大的视频网站| 成人片黄网站色大片免费| 亚洲丰满熟女一区二区哦| 免费一级e一片在线播放| 国产大片免费天天看| 亚洲阿v天堂在线| 国产成人yy免费视频| 亚洲精品久久无码av片俺去也 | 91精品免费国产高清在线| 久久久国产亚洲精品| 免费在线看片网站| 91免费国产视频| 亚洲欧洲校园自拍都市| 日韩高清免费在线观看| 亚洲天堂免费在线视频| 亚洲噜噜噜噜噜影院在线播放| 日本一道一区二区免费看 | 亚洲国产精品无码久久SM| 亚洲成人免费在线| 亚洲AV电影天堂男人的天堂| 亚洲日产韩国一二三四区| 亚洲第一成年免费网站|