我想通过RSACryptServiceProvider签名和验证数据
为此,我需要公钥和私钥。
在我的项目中,我将公钥和私钥存储在XML文件中。
有一次,我生成了我的公钥和私钥
public bool SignutureCheckForVerify(string myData, byte[] SignedData)
{
...
RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider();
RSAalg.FromXmlString(MyPublicKey());
return RSAalg.VerifyData(Encoding.ASCII.GetBytes(myData), new MineCryptoService(), SignedData);
...
}
private static string MyPublicKey()
{
return "<RSAKeyValue><Modulus>-----Pubic Key Here ----</RSAKeyValue>";
}
在上面,我展示了“通过公钥验证数据”
我的SignData方法类似。
在那里,
RSAalg.FromXmlString(GetPrivateKey());
...
RSAalg.SignData(...)
我的问题是:举个例子,我认识到;通过crt/pem/cert等导入公钥和私钥。证书文件。在那里我存储了XML文件。
我的解决方案错了吗?
第二个问题是,
如果我用这个方法导入密钥
https://msdn . Microsoft . com/en-us/library/tswxhw 92(v = vs . 110)。文件
GetKeyFromContainer(“MyKeyContainer”);
MyKeyContainer私钥和公钥是静态的吗?
每次运行时,我是否可以拥有相同的私钥/公钥
还是每次运行我都有不同的按键设置?强调文本
我的解决方案错了吗?
这取决于您的要求和威胁模型。RSACryptoServiceProvider
的签名生成应显式设置为MD5或SHA-1以外的哈希。从您的问题中不清楚是否发生了这种情况。
如果我用这个方法导入密钥
https://msdn . Microsoft . com/en-us/library/tswxhw 92(v = vs . 110)。文件
GetKeyFromContainer(“MyKeyContainer”)
MyKeyContainer的私有和公共密钥是静态的吗?
是的,这就是使用密钥存储的一般想法。
每次运行时,我可以拥有相同的私钥/公钥吗?还是每次生成签名时都应该设置不同的密钥?
是的,如果您使用足够大的密钥大小,比如2048位或更高,您可以做到。
实际上,为了使您的解决方案安全,接收方需要信任公钥。当没有建立信任时,任何人都可以向您发送他们的公钥。
我试图从私钥中生成一个公共ECDSA密钥,但我还没有在互联网上找到多少关于如何实现这一点的帮助。几乎所有的事情都是为了从公钥规范生成公钥,我不知道如何得到它。到目前为止,我总结了以下内容: 但是,在运行时,我会出现以下错误: 我做错了什么?有更好/更简单的方法吗? 编辑:我已经设法编译了一些代码,但它不能正常工作: 当我运行它时,它会生成一个公钥,但它不是私钥对应的公钥。
我被告知,对于非对称密码学,您使用公钥加密明文,并使用私钥解密明文。所以我尝试了以下方法: 以及加密和解密函数 我希望控制台显示,但它显示的是这个。我是否错误地使用了RSACryptoServiceProvider?
我有这样的代码来导入一个ECDH键: 这是可行的,但是它只返回私钥,而不是整个密钥对。如何从私钥中导出公钥?
Auth0提供了两个JWT库,一个用于Node:Node jsonwebtoken,另一个用于Java:Java JWT。事实证明,JavaJWT不支持公钥/私钥对。 然而,另一个java库jjwt库声称支持该特性。但是,该文档没有显示如何在jjwt中使用自己的公钥/私钥对。 我创建了私有/公钥对,并在Node中成功地使用了node-jsonwebToken: 但是我发现在Java中用JWT无法做
我试图理解使用带有私钥/公钥(RS512)的JSON Web令牌的逻辑,当将从客户端(在本例中是React Native App)发送到服务器的数据有效载荷签名时。 我认为私钥/公钥的全部意义在于将私钥保持为私钥(在我的服务器上),并将公钥交给成功登录应用程序的人。 我认为,对于我的服务器的每个API请求,经过身份验证的应用程序用户将使用公钥创建JWT(在客户端),服务器将使用私钥验证来自API请
我使用secp192r1曲线生成了ECC公钥和私钥。公共密钥数组长度为75,私有密钥数组长度125。为什么私钥比公钥长?为什么私钥的长度不是公钥的两倍?为什么由于secp192r1私钥不是192位=24字节?