RSA密钥生成指数和模

public class Main {  
  
    static final String mod="119013762783552790664444510344126639271924844701717173872088828066827617618352052423868797764101050671675010273300968086768952758222793093337410679638385758438181998828779151354457120185810439862646172407875625351933121940976586295594801107405021633366112226209939925716039327701639315656827458274941425368677";  
      
    static final String publicE="65537";  
      
    static final String privateE = "106917532045172255415411675710221707032269514269165514577919371366747681689703456650559215972034323501923156458960095779126430300336072236497450160586990533670480101946578693218455238274718168302034205034895891150713831453664198422986491449327196528842768860543017467669252798863303270185486892719101442835713";  
      
    public static void main(String[] args) throws Exception{  
        // 获取公私钥n  
        BigInteger m = new BigInteger(mod);  
        // 获取公钥e  
        BigInteger pubE = new BigInteger(publicE);  
        // 密文  
        BigInteger priE = new BigInteger(privateE);  
        String test = "我123这个是测试";  
        test = URLEncoder.encode(test,"UTF-8");//解决中文乱码的问题  
        byte[] testByte = test.getBytes();  
        BigInteger testByteInt = new BigInteger(testByte);  
          
        byte[] enTestByte = testByteInt.modPow(pubE, m).toByteArray();//将明文加密为密文  
        byte[] deTestByte = new BigInteger(enTestByte).modPow(priE, m).toByteArray();//将密文解密为明文  
        System.out.println(URLDecoder.decode(new String(deTestByte), "UTF-8"));  
    }  
      
    static void generateKeyPair(){  
        KeyPairGenerator keyPairGen = null;  
        try {  
            keyPairGen = KeyPairGenerator.getInstance("RSA");  
        } catch (NoSuchAlgorithmException e) {  
        }  
        keyPairGen.initialize(1024);  
        KeyPair keyPair = keyPairGen.generateKeyPair();  
        RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();  
        RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();  
        System.out.println("publicKey Mod: "+publicKey.getModulus());  
        System.out.println("publicKey Exp: "+publicKey.getPublicExponent());  
        System.out.println("privateKey Mod: "+privateKey.getModulus());  
        System.out.println("privateKey Exp: "+privateKey.getPrivateExponent());  
    }  
      
}  


转自:http://blog.csdn.net/yu670538949/article/details/52177513


展开阅读全文

没有更多推荐了,返回首页