gpt4 book ai didi

java - 在 Android/Java 中通过 RSA 加密内容

转载 作者:行者123 更新时间:2023-11-29 20:46:34 25 4
gpt4 key购买 nike

public static String encryptByPublicKey(byte[] data, String key)
throws Exception {

byte[] keyBytes = decryptBASE64(key);

X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
Key publicKey = keyFactory.generatePublic(x509KeySpec);

Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());
cipher.init(Cipher.ENCRYPT_MODE, publicKey);

return new String(cipher.doFinal(data));
}

我有一个公钥,比如 MFWww.......EAAQ==。当我将字符串传递给该参数时,加密消息是一些未知字符。因此我怀疑在将它传递给函数之前我应该​​对键做一些事情。但我不知道我怎么能做到。所以看到任何人都可以提供帮助。

谢谢

最佳答案

永远、永远、永远不要将任意二进制数据传递给 String 构造函数。您没有编码的文本,您有任意字节。这不是 String 构造函数的用途。

理想情况下,根本不要将二进制数据表示为文本 - 但如果您必须这样做,请使用 base64 或 hex,这将以 ASCII 编码任意二进制数据。

关于java - 在 Android/Java 中通过 RSA 加密内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30233675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com