验证由Windows Crypto API创建的Java签名
Verify a signature in Java that is created by Windows Crypto API
我有Crypto API创建的签名
if(!CryptCreateHash(hProv, CALG_MD5, 0, 0, &Hash))
return;
if(!CryptHashData(Hash, Buff,count, 0))
return;
if(CryptSignHash(Hash,AT_SIGNATURE,NULL,0,Buff,&count))
...
我想用Java验证签名。
c++生成的密钥长度为148字节,我需要一个java 162。我使用http://www.jensign.com/JavaScience/MSKeytoJKey/生成它。查看162个生成148个重合。
然后尝试验证签名
Signature dsa = Signature.getInstance("MD5WithRSA");
dsa.initVerify(rsapublickey);
dsa.update(Text);
Sign = dsa.verify(TextSign);
你猜对了,Sign的值是false。我错过了什么,这真的会有什么结果吗?
本地加密API使用小端字节顺序,而。net框架和JAVA使用大端字节顺序。如果您正在验证使用Crypto API生成的签名,则必须在调用Java中验证签名的函数之前交换签名字节的顺序。
相关文章:
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 使用 C/C++ 宏生成函数签名
- 如何使用模板函数的函数签名进行SFINAE
- 在java中解决这段代码时面临循环中的问题
- 尝试用java代码编译和运行c++代码
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- C++Builder中的OnClick事件签名存在问题
- 在这种情况下,java对象是否可以调用本机函数
- 在java中读取c++字节的位字段
- 为什么C++对链表中的下一个节点使用指针,而像 C# 或 Java 这样的语言只使用类 Node 的名称?
- 加密++验证大文件签名
- 验证openssl c++中的签名,这是由JAVA DSA签名的?
- RSA_verify中预期的数据类型是什么,无法验证从 Java 生成的签名
- JNI:返回用户定义的Java类时要使用什么签名
- 在Java中生成RSA签名,但在C 中验证签名失败
- 从 Java KS 导出的自签名证书不起作用
- 加密:使用 Linux/gcrypt 签名,使用 Android/Java 验证
- 如何将 Java 程序的入口点更改为 C 签名
- DLL导出查看器显示函数的完整签名-无法从Java调用它们
- 验证由Windows Crypto API创建的Java签名