RSA加密使用RSA-OAEP算法,java怎么写?

天宇365 2021-01-25 06:26:07
使用公钥加密密码。RSA加密使用RSA-OAEP算法,引入随机数,算法Hash使用SHA512,Label为空。
跑了这个例子
https://ask.csdn.net/questions/1036479?sort=comments_count
总是有异常
...全文
1242 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
https://www.bejson.com/enc/rsa/ 你可以现在这里加密完看看结果,选择自己需要的算法吧
  • 打赏
  • 举报
回复
结果不对吗?那你试试用SHA-512
天宇365 2021-01-26
  • 打赏
  • 举报
回复
大佬你好,非常感谢,请问如上代码加密是下面描述的加密吗? 结果好像不对?

RSA加密使用RSA-OAEP算法,引入随机数,算法Hash使用SHA512,Label为空
SHA512是不是要用下面这个?
 MessageDigest md = MessageDigest.getInstance("SHA-512");
  • 打赏
  • 举报
回复 1

private void getRSAPublidKeyBybase64(String base64s) {
    Cipher cipher;
    try {
        //cipher = Cipher.getInstance("RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING");
        cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");//Android上使用
        byte[] publicBytes = Base64.decode(base64s.getBytes(StandardCharsets.UTF_8), Base64.DEFAULT);
        X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicBytes);
        KeyFactory keyFactory = KeyFactory.getInstance("RSA");
        PublicKey pubKey = keyFactory.generatePublic(keySpec);
        cipher.init(Cipher.ENCRYPT_MODE, pubKey);
        String plaintext = "test";
        byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes(StandardCharsets.UTF_8));
        String cipherText = Base64.encodeToString(encryptedBytes, Base64.DEFAULT);
        Log.d(TAG, "encrypted (cipherText) = " + cipherText);
    } catch (NoSuchAlgorithmException | NoSuchPaddingException |
            InvalidKeyException | BadPaddingException | IllegalBlockSizeException |
            InvalidKeySpecException e) {
        e.printStackTrace();
    }
}
天宇365 2021-01-25
  • 打赏
  • 举报
回复
https://ask.csdn.net/questions/1036479?sort=comments_count 有大佬帮忙跑一下上面这个java的例子么,我run了,总是有异常。

80,491

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧