gpt4 book ai didi

java - 如何使用 RSA key 签署通用文本并使用 Java 中的 Base64 进行编码?

转载 作者:行者123 更新时间:2023-11-30 05:55:09 25 4
gpt4 key购买 nike

我在 bash 中有以下代码:

signed_request = $(printf "PLAIN TEXT REQUEST" | 
openssl rsautl -sign -inkey "keyfile.pem" | openssl enc -base64 | _chomp )

基本上,此代码采用纯文本,使用私钥对其进行签名并使用 Base64 进行编码

如何用 Java 编写具有完全相同功能的代码?

最佳答案

您可以使用 JDK security API .看看这个工作sample ,希望它可以帮助您入门:

  public static void main(String[] args) throws Exception {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
KeyPair keyPair = kpg.genKeyPair();

byte[] data = "test".getBytes("UTF8");

Signature sig = Signature.getInstance("MD5WithRSA");
sig.initSign(keyPair.getPrivate());
sig.update(data);
byte[] signatureBytes = sig.sign();
System.out.println("Singature:" + new BASE64Encoder().encode(signatureBytes));

sig.initVerify(keyPair.getPublic());
sig.update(data);

System.out.println(sig.verify(signatureBytes));
}

编辑:上面的示例使用了 Sun 的内部编码器 (sun.misc.BASE64Encoder)。最好使用像 Base64 这样的东西来自 Commons 编解码器

关于java - 如何使用 RSA key 签署通用文本并使用 Java 中的 Base64 进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8647165/

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