看看这篇文章,应该对你有用! http://www-900.ibm.com/developerWorks/cn/java/l-security/index.shtml

解决方案 »

  1.   

    www.bouncycastle.org,什么算法都有
      

  2.   

    www.cryptix.org
    上也有,偶现在用的就是boucycastle和cryptix的产品。。
      

  3.   

    我在书店看到一本关于java加密的书《数据加密》,把一些hash等用java实现!
      

  4.   

    如果是开发包,那就直接看帮助文档拉。
    如果要自己写也可以拉。
    KeyPairGenerator kpg=KeyPairGenerator.getInstance("RSA");
    kpg.initialize(1024);
    KeyPair kp=kpg.genKeyPair();
    PublicKey pk=kp.getPublicKey();
    PrivateKey rk=kp.getPrivateKey();
    BigInteger e=pk.GetPublicExponent();
    BigInteger n=pk.getModulus();
    BigInteger d=pk.GetPrivateExponent();
    加密:
    BigInteger bpass=new BigInteger("密码".getBytes());
    BigInteger RSA_pass=bpass.modPow(e,n);
    byte[] cpass=RSA_pass.toByteArray();解密:
    BigInteger bpass=RSA_pass.modPow(d,n);
    byte[] pass=bpass.toByteArray();OK?
      

  5.   

    sorry,错了一点:
    BigInteger d=pk.GetPrivateExponent();
    应该是
    BigInteger d=rk.GetPrivateExponent();
      

  6.   

    在jsdk1.3中rsa算法是有出口限制的,所以使用boucycastle和cryptix等第三方软件,不过好像jsdk1.4中提供了rsa的实现。
      

  7.   

    下载cryptix32.jar包
    java.security.Security.addProvider(new cryptix.provider.Cryptix());
    SecureRandom ran = new SecureRandom();
    byte[] bb = new byte[20];
    ran.nextBytes(bb);
    KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
    keyGen.initialize(1024, ran);
    KeyPair pair = keyGen.generateKeyPair();
    RSAPrivateKey priv = (RSAPrivateKey) pair.getPrivate();
    RSAPublicKey pub=(RSAPublicKey)pair.getPublic();
    //public key encrytion


    String a=Base64Encoder.encode(CodingUtil.GBKToIOS8859("你好"));
    System.out.println(a);
    BigInteger paintText=new BigInteger(a.getBytes());
    BigInteger clipText=paintText.modPow(pub.getPublicExponent(),pub.getModulus());
    System.out.println(clipText);
    //private key decrytion
    BigInteger aa=clipText.modPow(priv.getPrivateExponent(),priv.getModulus());
    String b=new String(aa.toByteArray(),"ISO8859-1");
    System.out.println(b);
    String str=Base64Decoder.decode(b);
    System.out.println(str);