问题标签 [encryption-asymmetric]
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.
encryption-asymmetric - 加密和解密
我想实现以下场景客户端应用程序将具有以下功能:1)获取图像作为参数 2)将其转换为数组字节 3)加密它调用 Web 服务并将此数组字节传递给该服务
服务将具有一个功能,它将 1)接收数组字节作为参数 2)对其进行解密 3)从该数组字节生成图像。
1)我应该用什么来加密数据以及如何有任何示例应用程序或文章可以帮助我。2)对称或非对称加密 3)我将面临的任何问题
python - python X.509非对称加密
我试图了解证书和非对称加密的工作原理。我正在寻找一个 python 库,我可以在其中导入公共或私有 ca 签名证书并自动加密或解密字符串格式的消息,我查看了嵌入在 python 源中的加密库,但我不知道如何使用十六进制模数和证书这部分的指数:
有没有人可以帮助我?
谢谢
c# - 我可以使用程序集 PublicKey 来解密使用相应 PrivateKey 加密的字符串吗?
在 .NET 中对程序集进行签名涉及公钥/私钥对。据我所知,.NET 使用 RSA 算法和私钥对程序集进行签名,并使用嵌入的公钥对其进行检查。
我知道如何检索公钥 ( Assembly.PublicKey
)。我想知道,是否可以使用该密钥来解密包含一些用私钥加密的数据的短字符串。
到目前为止我读过的文档(例如)似乎暗示只有相反的方式是可能的:我必须使用公钥加密和私钥解密 - 但我真的不想包括在大会上,我做。
我想没关系,如果我只是签署了字符串。但是怎么做?
我有点不知所措如何开始。有人有代码片段吗?
此外,理想情况下,小字符串的加密/签名将在 PHP 中进行,因为我想将其卸载到 Web 服务器,而到目前为止我们所拥有的只是您的通用 PHP/MySQL 托管网站。
用例:我正在尝试为我们即将发布给 beta 测试人员的软件提出一个轻量级的许可方案。由于该软件可能是免费软件,我们真正想要实现的是
- 知道谁安装了软件(电子邮件地址)
- 让软件在给定期限后过期,之后用户必须获得新的许可证
- 这就像填写表格并等待带有密钥的自动电子邮件到达一样简单
- 我们正在努力减少旧版本回来损害我们声誉/困扰我们的可能性
能够加密元组(到期日期、指纹)并在启动时对其进行解密将使许可模块变得简单:第一次启动应用程序时,会要求用户提供电子邮件地址、姓名、组织。此信息与一些系统信息(nic、计算机名称、程序集主要和次要版本)的 md5 指纹一起发布到网络服务器。网络服务器通过电子邮件回复(检查电子邮件地址的有效性),并使用加密版本的元组(到期日期、指纹),然后将其保存到磁盘。在启动时,可以将其解密并与当前日期和重新生成的指纹进行比较。
编辑:好的,所以我还没有我的问题的所有答案。但看起来 .NET 不会让使用私钥进行加密变得容易(如果可能的话,答案并不真正同意这一点)。
我将采取的路线是这样的(基于我的用例):
- 我将使用私钥签署许可证。
- 我将使用公钥来验证许可证是否由私钥签名
- 我将发布另一个针对 PHP 开发人员的问题,关于如何使用 .NET 密钥(由 生成
sn.exe
)来签署一些文本 - 我并不真的担心用户看到许可证,因为它无论如何都是一个哈希值,并且是根据他已经知道的东西计算出来的。我想要的只是让典型的建筑建筑师在我不知情的情况下复制我的软件变得太难了(请记住,该软件将是免费软件 - 我想要的只是谁安装了它的书面记录...... )
非常感谢您的回答。
biztalk - 在 biztalk 客户管道组件中使用 X509 证书进行加密/解密
我需要在 BizTalk 自定义管道组件中使用 X509 证书来加密/签署消息并解密/验证签名,请让我知道一些好的示例/文章/博客等,它解释了如何实现这一点。
RSA 需要是加密算法。
谢谢。
encryption - 是否可以按照与解密不同的顺序进行加密?
是否可以以一种顺序加密并以另一种顺序解密?例如,我有以下内容:
- 纯文本.txt
- 公钥/私钥对 1
- 公钥/私钥对 2
例子
加密:
解密:
是否有任何加密算法允许这样做?甚至可能吗?
java - 比 RSA 更快的非对称密码
我一直在研究一个在大量文件中使用非对称加密的系统。我目前正在使用带有 4096 位密钥的 RSA 来为每个文件加密一个 256 位随机生成的 AES 密钥,但性能有些欠缺,因为一项必需的操作是扫描所有文件(系统在使用大约 10,000)并确定哪些可以使用特定的私钥解密。虽然我不希望这个操作是即时的,但目前花费的时间太长(每秒处理约 2 个文件)。我考虑减少密钥长度,但即使将其降低到 2048 位也无法提供我需要的性能水平。512 位几乎可以削减它,但是现在可以轻松破解这样的密钥,这是不可能的。
任何人都可以向我指出一个更快但具有相似加密强度的系统的方向吗?它需要通过 Java JCA 提供者(例如 bouncycastle 之类的东西)来实现,以便巧妙地插入到我现有的应用程序中。我知道充气城堡支持 El Gamal,但我找不到任何关于这个算法有多强大的细节,或者它是否可能比 RSA 更快。我还听说椭圆曲线系统只需要相对较短的密钥(384 位等),但不知道在哪里可以找到其中一个的实现。
cryptography - 有没有可以展示非对称密码原理的物理锁?
我希望使用真实世界的锁来演示非对称加密。例如,我想在一张纸上写下一个秘密,然后将它存放在一个上锁的盒子里。有没有我可以买的带有两把钥匙的锁,一把只锁锁,另一把只开锁?
security - 如何在 Silverlight 中加密用户密码?
我有一个 Silverlight 3 应用程序,它连接到服务器以执行各种操作。我的用户使用表单身份验证登录,但他们请求的操作是使用 AppPool 帐户在服务器上运行的,因此当他们进入审核日志时,他们会根据 AppPool 帐户进行记录。PCI DSS 法规现在要求用户自己的 ID 存在于审计日志中,这意味着必须使用用户的信用来采取行动。现在,我可以在用户登录并提交每个请求时保存用户的凭据,并且服务器正在执行的操作可以使用这些凭据。但是 PCI 法规说,如果保存凭据,则必须对其进行加密(以避免有人获取 PC 的内存转储并获取密码)。
我能看到的唯一方法是从服务器获取公钥并用它加密密码,然后提交加密密码并使用私钥在服务器上解密。但 Silverlight 没有非对称加密。
我想我离问题太近了,必须有另一种解决方案,但我看不出它是什么。任何人都可以帮忙吗?
澄清
这是一个内部应用程序。到目前为止,我一直在使用 IIS Forms AuthN over SSL 到 Active Directory - 我不担心在传输过程中保护密码,只是当它保存在客户端的内存中时。据我了解,因为我使用的是Forms Authentication,所以除非我使用LogonUser,否则无法在服务器上进行模拟,这意味着我需要服务器上的密码,所以我每次都需要传输它,所以我需要持有它在客户端,在内存中,直到应用程序关闭。
c++ - 用于 C++ 应用程序的快速非对称密码
我正在寻找一种用于 C++ 程序的快速非对称密码算法。我们的应用程序访问存储在存档中的只读数据(自定义格式,有点类似于 tar),我想通过非对称加密存档索引来防止对该存档进行任何修改(我知道这不是一个完美的解决方案和仍然可以使用某些技术提取和重新打包数据)。
存档中的某些单个文件使用对称密码进行加密,并且它们的加密密钥存储在存档索引(标题)中。这就是为什么我想不对称地加密存档头。
密码要求:
1)算法实现应该是平台无关的。
2) 算法应该易于我自己实现,或者它应该在允许与专有应用程序静态链接的库(带有源代码)中可用,这意味着不能使用 GPL/LGPL/病毒许可证。MIT/BSD 许可代码或公共领域代码是可以接受的。
3) 如果库中有 cypher,理想情况下它应该具有较小的内存占用,并且实现应该是紧凑的。我更喜欢使用只实现一个密码而不是成熟的通用密码集合的 C/C++ 库。
最初我想使用 RSA,但它看起来太慢而无法使用,并且没有太多替代方案。
那么,关于我可以使用什么的任何建议?
encryption - 有没有办法改变公钥,在经过一些修改后仍然可以用私钥完成解密?
在非对称加密方案中,我想知道是否有可能实现以下目标:
- Bob 将他的公钥发送给 Alice
- 爱丽丝更改鲍勃的公钥并用它加密一些文件
- Alice 将加密的文档发送给 Bob
- Bob 检索到文档,但无法用他的私钥解密
- 之后,Alice 向 Bob 发送了一些额外的信息(可能与她用来更改 Bob 的公钥的方法有关)
- Bob 使用此附加信息修改他的私钥并成功解密文档
任何人?
我假设 RSA 用于密钥生成、加密和解密,但如果使用其他方案更容易,请随时发表评论。