问题标签 [rsacryptoserviceprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1378 浏览

c# - 使用 RSACryptoServiceProvider 加密数据在我看来是一个奇怪的功能

我使用“设置下一条语句”重复执行以下语句,即没有执行任何其他代码行。 byte[] encryptedData = encrypt.Encrypt(data, false);

我查看了 encryptedData 中的字节,发现 encryptedData 中的字节每次都在变化。这肯定是错的吗?如果公钥没有改变并且要加密的数据没有改变,那么“encryptedData”字节也不应该改变吗?

0 投票
2 回答
8437 浏览

c# - C# 中的 RSA 不会为特定密钥生成相同的加密字符串?

我有一个要求,我需要在一个应用程序中加密我的连接字符串并在另一个应用程序中解密它。考虑到这一点,我将公钥和私钥分别保存在应用程序的 App.Config 中。

现在,RSA 不应该给我相同的加密字符串和我使用的相同密钥吗?

我总是得到不同的加密字符串,使用相同的密钥。!!请帮助我消除混乱。我不明白如何解决这个问题,如果我使用保存的加密字符串,我会得到BAD Data异常,因为每次加密都会给我不同的加密字符串。

这是我的代码:

先感谢您。

更新1: 我用过

我仍然看到加密数据每次都在变化。 但是不再出现Bad Data错误。但是我不能在Encoding.UTF8上使用UTF16(UnicodeEncoding)因为它不能加密像连接字符串这样的巨大字符串并抛出异常:

更新 2:

UTF8Encoding ByteConverter = new UTF8Encoding();我可以通过使用然后做来解决坏数据的问题ByteConverter .GetString("HUGE STRING");

0 投票
2 回答
4168 浏览

c# - 在 C# 中使用 RSA 加密实现安全通信

我想实现一个场景,两个端点可以使用公钥/私钥加密安全地相互通信。场景如下:

A向B发送消息:

A 使用 A 的私钥对消息进行加密。

A 使用 B 的公钥加密消息。

A 发送消息。

B 收到消息。

B 使用 A 的公钥解密消息。

B 使用 B 的私钥解密消息。

B 阅读消息。

这是我在 C# 中使用 RSA 加密的内容:

显然,以下几行有问题:

这会引发System.Security.Cryptography.CryptographyException和 message { "Bad Length" }

正如我所看到的,它无法仅使用鲍勃密钥的公共部分来加密数据。

有人可以说明如何正确完成我想在C#中做的事情吗?

0 投票
2 回答
1802 浏览

.net - .NET RSACryptoServiceProvider 中的 PyCrypto 签名消息和验证签名

我正在尝试创建一个签名验证系统,该系统使用我的网站,该网站在带有 PyCrypto 引擎的 Google API 上运行。生成签名的程序非常简单:

密钥“密钥”由以下方式提供:

签名以十六进制字符串形式返回,例如:“A12D.......”

.NET 程序是:

但它不起作用!为什么??

Pycrypto 和 .NET 接收相同的参数(模数、指数、d、p、q)

0 投票
1 回答
344 浏览

c# - 保存加密密钥的正确方法是什么?

我有:

和其中之一:

保存它们的正确方法是什么,应该使用什么文件扩展名?注意:我不是指如何加密它们。只是如何存储它们。

0 投票
1 回答
17770 浏览

rsa - 使用 SHA256 签名

我有一张智能卡,我需要用它签署一个文件。正如我在stackover中看到的那样,这是一个大问题。

我不能使用 RSACryptoServiceProvider,bkz 它不支持 RSA-SHA256 算法。

起初我使用 CAPICOM.dll ,如下面的代码,

但是没有公钥来验证我的签名值,我无法从 capicom.dll 获得验证密钥。

之后 ,

我使用了 X509Certificate2 和 RSACryptoServiceProvider ,如下面的代码,

它有效,但我需要使用 RSA-SHA256 算法签名。当我像这样更改哈希算法时

我得到一个

错误:“未指定的错误”。

那是我的问题,解决方案是什么,或者我应该使用哪个库?

谢谢你的建议。。

0 投票
0 回答
179 浏览

android - Android 中的加密服务提供商

我需要在运行 android 4.0.3 的平板电脑上安装更多证书,并由不同的用户使用。每个用户都需要访问一个要求证书进行身份验证的网络。我想保护每个证书的私钥,例如在带有 CSP 或其他一些的 Windows 中,每个用户都需要输入 PIN 或密码才能访问正确证书的私钥。有可能做,如果是的话怎么做。谢谢皮尔卡洛

0 投票
2 回答
4331 浏览

c# - RSACryptoServiceProvider(RSACryptoServiceProvider) 构造函数在 .NET 3.5 中因某些键名而崩溃

如果您查看下面的代码,它除了创建一个新的RSACryptoServiceProvider. 密钥容器名称是从基于各种参数创建名称的属性初始化的。我在这个演示代码中添加了硬编码值。

该代码在 Windows 2008 R2 服务器安装上运行,并且已经运行了几个月,为密钥容器名称返回了一个常量值。

几天前,代码停止工作,我们面临以下异常。使用已使用数月的密钥容器名称不再有效。服务器已重新启动,IIS 已重新启动 - 没有成功。只有在更改密钥名称后,它才重新开始工作。

有人可以解释为什么会发生这种情况以及如何解决吗?据我所知,这段代码没有创建任何持久对象。为什么重启后还是会失败?从 MSDN (http://msdn.microsoft.com/de-de/library/ca5htw4f.aspx) 我读到构造函数“构造函数创建或重用使用 KeyContainerName 字段指定的密钥容器”。“重用”是否意味着它正在某处缓存内容,并且在执行此操作时崩溃并且现在卡在损坏的缓存版本中?另请注意,当前许多其他机器上仍在使用相同的键名 - 任何地方都没有问题。

这是崩溃的行:

这些是使用的 CspParameters:

这就是关键名称:

最后是例外:

0 投票
3 回答
335 浏览

.net - .Net:我的 RSA 密钥在 2012 年 8 月之后还能使用吗?

我刚刚阅读了这篇文章RSA keys under 1024 bits are blocked,在我的 .NET 软件中我大量使用了 384bit 密钥。我的程序是否仍然能够使用 RSACryptoServiceProvider 从 MachineKeyStore 生成/存储/读取密钥?还是我会被迫发送补丁?

0 投票
0 回答
991 浏览

vb.net - 对象在 RSACryptoServiceProvider 中已经存在异常

首先让我先说如果我把这个问题发错了地方,我很抱歉。我看到Object 的条目已经存在于 RSACryptoServiceProvider 中。我尝试了那里提供的解决方案。但是,他们没有解决我的问题。另外,我没有看到重新提问的选项。

我有几乎同样的问题。我有一个RSACryptoServiceProvider在同一台机器上和同一帐户下的两个项目中使用的类。两个项目都存在于同一个解决方案中,并共享相同的加密代码。一个项目,服务器,是一个 Windows 服务,另一个项目,客户端,是一个 Windows 应用程序。他们使用RSACryptoServiceProvider非对称加密通过命名管道相互交谈。我一开始只是让服务器在与客户端相同的应用程序中以另一个 Windows 窗体运行。一切运行良好。然后,我将服务器移至 Windows 服务。

Windows 服务启动正常。它似乎能够创建它的RSACryptoServiceProvider罚款实例。但是,当在 Windows 应用程序中运行的客户端启动时,它会在尝试创建它时遇到运行时错误。这是在两个项目中运行的代码。

如您所见,我有设置访问规则的代码,如关于此主题的另一篇文章中所述。不幸的是,这并没有解决我的问题。还有什么需要改变的吗?