java处理加密文件---RSA加密和解密

public class RSA {
 public static void main(String []args)throws Exception
    {
  String ptext = "he";
  //获取公钥生成参数
  KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
  kpg.initialize(1024);
  KeyPair keyPair = kpg.genKeyPair();

  RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic();
  RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate();
  
  System.out.println("公共码"+publicKey.getModulus().toString());
  
  byte[] ptexts = ptext.getBytes("UTF8");
  BigInteger m = new BigInteger(ptexts);
  BigInteger c = m.modPow(publicKey.getPublicExponent(), publicKey.getModulus());
  System.out.println("密文"+c);
  
  //System.out.println("d:"+privateKey.getPrivateExponent());
  
  System.out.println("私密码"+privateKey.getModulus());
  
  BigInteger jm=c.modPow(privateKey.getPrivateExponent(), privateKey.getModulus());
  System.out.println("解码数据"+jm);
  
  byte[] mt =jm.toByteArray();
  
  System.out.print("解码结果");
  for(int i=0;i<mt.length;i++){
   System.out.print((char)mt[i]);
  }
  
    }
}

posted on 2012-06-20 17:56  c语言源码  阅读(494)  评论(0编辑  收藏  举报

导航