我有以下一段 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 脚本的结果不同。
所有建议表示赞赏。
亲切的问候 Jens