java - 我可以在 java 中使用什么等同于 RSAPKCS1SignatureDeformatter?
问题描述
我有文件创建过程,其中我们使用 RSAPKCS1Signature 类创建签名以在 c# 中进行签名和验证。现在我们正在迁移到 Java,我们使用在 c# 中使用的相同算法,但它没有验证在 c# 中创建的 java 中的同一个文件。我附上了使用的示例代码。请建议需要完整。谢谢..!
C#:
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
byte[] Hash = {59,4,248,102,77,97,142,201,210,12,224,93,25,41,100,197,213,134,130,135};
RSAPKCS1SignatureFormatter RSAFormatter = new RSAPKCS1SignatureFormatter(RSA);
RSAFormatter.SetHashAlgorithm("SHA1");
byte[] SignedHash = RSAFormatter.CreateSignature(Hash);
RSAPKCS1SignatureDeformatter RSADeformatter = new
RSAPKCS1SignatureDeformatter(RSA);
RSADeformatter.SetHashAlgorithm("SHA1");
Console.WriteLine(RSADeformatter.VerifySignature(Hash, SignedHash));
爪哇:
KeyStore ex = KeyStore.getInstance("JKS");
ex.load("c://sample.jks", "password");
PrivateKey privateKey = (PrivateKey) ex.getKey("1", "password");
Signature signature = Signature.getInstance("SHA1WithRSA");
signature.initSign(privateKey);
String line = null;
while ((line = reader.readLine()) != null) {
signature.update(line.getBytes());
}
signature.sign();
解决方案
推荐阅读
- csv - 为什么“#”会破坏我的 csv?HTML 锚点下载
- c# - 使用 C# .NET 在源和目标中具有多个表的 Azure 数据工厂动态复制活动
- javascript - 如何通过单击标题对 html 表格列进行排序 [PHP/MYSQL]
- python - 将 Python 中的 mat 文件转换为 JSON
- mysql - 两个表之间的sql查询数据过滤
- angular - Angular树扩展单个节点需要太多时间
- amazon-web-services - 卓:有没有办法分配权限来控制公司账户的停止/启动虚拟机?
- python - 如何通过 pandas groupby 或类似技术构建数据框列?
- wordpress - 如何通过自定义日期时间选择器订购自定义帖子类型?
- android - 即时应用程序未从“立即尝试”按钮加载