java– 使用SpongyCastle的RSA

java– 使用SpongyCastle的RSA,第1张

概述我对加密的了解非常基础,对于我的任何无知都是道歉.在Android应用程序中,我目前正在尝试使用SpongyCastlelibrary和标准java.security库来模仿此命令的执行:echo'test'|opensslrsautl-encrypt-pubin-inkeytest.pub|base64>encrypted_file应该注意的是,命令中文件

我对加密的了解非常基础,对于我的任何无知都是道歉.

在Android应用程序中,我目前正在尝试使用SpongyCastle library和标准java.security库来模仿此命令的执行:

echo 'test' | openssl rsautl -encrypt -pubin -inkey test.pub | base64 > encrypted_file

应该注意的是,命令中文件的读/写不会被实现,我的公钥(即test.pub)在我的代码中作为Base64编码的字符串base64key.

我尝试了以下但是确定它不起作用:

static {       Security.insertProvIDerAt(new BouncyCastleProvIDer(), 1);      }//...more code herebyte[] pka = Base64.decode(base64key);X509EncodedKeySpec x = new X509EncodedKeySpec(pka);PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(x);byte[] testToByte = "test".getBytes("UTF8"); KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); keyGen.initialize(2048); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); byte[] cipherText = cipher.doFinal(testToByte); String encrypted = Base64.encode((new String(cipherText, "UTF8").toString().getBytes()))

我知道这是关闭的,但我不知道该转向何方.任何帮助,将不胜感激.

解决方法:

最终使用以下方法解决了这个问题:

private voID stripheaders(){    public_key = public_key.replace("-----BEGIN PUBliC KEY-----", "");    public_key = public_key.replace("-----END PUBliC KEY-----", "");}public byte[] encryptWithPublicKey(String encrypt) throws Exception {    byte[] message = encrypt.getBytes("UTF-8");    stripheaders();     PublicKey APIPublicKey= getRSAPublicKeyFromString();     Cipher rsaCipher = Cipher.getInstance("RSA/None/PKCS1padding", "SC");    rsaCipher.init(Cipher.ENCRYPT_MODE, APIPublicKey);     return rsaCipher.doFinal(message);}private PublicKey getRSAPublicKeyFromString() throws Exception{    KeyFactory keyFactory = KeyFactory.getInstance("RSA", "SC");     byte[] publicKeyBytes = Base64.decode(public_key.getBytes("UTF-8"), Base64.DEFAulT);     X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(publicKeyBytes);     return keyFactory.generatePublic(x509KeySpec);}
总结

以上是内存溢出为你收集整理的java – 使用SpongyCastle的RSA全部内容,希望文章能够帮你解决java – 使用SpongyCastle的RSA所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1098108.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存