【问题标题】:Java SHA1WithRSA using openssl command line使用 openssl 命令行的 Java SHA1WithRSA
【发布时间】:2012-07-23 08:43:48
【问题描述】:

我有以下一段 Java 代码,我想使用 openssl 命令行工具将其转换为 shell 脚本:

java.security.Signature sig = java.security.Signature.getInstance("SHA1WithRSA");
sig.initSign(privateKey);
sig.update(data);
byte[] signatureBytes = sig.sign();

到目前为止,我已经尝试了以下方法:

openssl dgst -sha1 -binary < data.der > data.hash
openssl rsautl -sign -inkey private.key -keyform pem -in data.hash -out data.rsa

但是它不会产生相同的输出。我想这可能与格式或填充等有关。我需要做什么来更正 openssl 脚本?

上面的两个代码都会产生一个可重复的结果,但是 java 和 openssl shell 脚本的结果是不同的。

感谢所有建议。

亲切的问候 延斯

【问题讨论】:

    标签: java openssl rsa digital-signature sha1


    【解决方案1】:

    其实我自己终于找到了答案。

    以下 openssl 命令将执行 SHA1WithRSA 并生成与 Java 代码相同的结果:

    openssl sha1 -sign private.key -out data.rsa data.der
    

    就这么简单,但在网上很难找到

    【讨论】:

    • 谢谢大佬,我遇到了同样的问题,从你的回答中解决了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2010-10-01
    • 2016-12-29
    相关资源
    最近更新 更多