问题标签 [rsa]
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.
cryptography - RSA 公钥文件类型检测
我得到了一个 RSA pubkey.dat(几乎很明显它是什么),它的内容结构如下:
- ASN1 大约 1024 位的整数(模数)
- ASN1 整数(指数)
- 256 字节的 Blob(签名)
没有像“----begin---”这样的标签。纯十六进制值。
有什么方法可以识别它的格式,比如它是 DER/PEM/etc ,所以我可以用 python 加密库或 c++ 上的 crypto++ 打开它?
(或者如果它与我要检查的公共标准结构名称匹配)
似乎它不是 PEM,因为 M2crypt 无法加载它。
提前致谢。
licensing - PHP 中的 RSA_sign 或 DSA_sign!
我将在我的网站上实现许可证密钥生成器,但我对 php 的了解很少!在我的(Cocoa)应用程序中,我集成了一个使用 RSA_sign 函数(在 C# 中)的系统验证......我想使用 paypal IPN 通知系统自动生成并向我的用户发送他们的许可证密钥......但是我真的不知道如何使用 RSA 密钥在 php 中对字符串进行签名!!!在 php 中,我只知道 openss_sign 函数,但它不是一回事!还是更好、更容易使用 DSA 签名方法???
请帮忙!
先谢谢大家的回复!!!
php - PHP许可证生成器保护与paypal IPN冲突?
我将在我的网站中集成一个许可证密钥生成器,它可以在发生贝宝通知(IPN)时自动生成许可证密钥......但我的问题是:保护 php 的最佳方法是什么文件(包含用于生成密钥的方法)和私有文件(.pem 文件)?
提前致谢!
c# - 在 C# 中解密使用 RSA 在 iPhone 上加密的内容时遇到问题
到目前为止,我已经为此花了两天时间,并梳理了我可以使用的所有资源,所以这是最后的手段。
我有一个 X509 证书,其公钥存储在 iPhone 的钥匙串中(此时仅模拟器)。在 ASP.NET 方面,我在证书存储中使用私钥获得了证书。当我在 iPhone 上加密一个字符串并在服务器上解密它时,我得到一个CryptographicException
“坏数据”。我尝试了页面中的Array.Reverse
建议RSACryptoServiceProvider
,但没有帮助。
我比较了两边的base-64字符串,它们是相等的。我在解码后比较了原始字节数组,它们也是相等的。如果我在服务器上使用公钥加密,字节数组与 iPhone 的版本不同,并且很容易使用私钥解密。原始明文字符串为 115 个字符,因此它在我的 2048 位密钥的 256 字节限制之内。
这是 iPhone 加密方法(从CryptoExercise 示例应用程序的方法中几乎一字不差wrapSymmetricKey
):
这是服务器端 C# 解密方法:
我怀疑平台之间存在一些编码问题。我知道一个是大端,另一个是小端,但我不知道哪个是哪个或如何克服差异。Mac OS X、Windows 和 iPhone 都是 little-endian,所以这不是问题。
新理论:如果将 OAEP 填充布尔值设置为 false,则默认为 PKCS#1 1.5 填充。显然,SecKey
只有、、和SecPadding
的定义。也许 Microsoft 的 PKCS#1 1.5 != Apple 的 PKCS1 等填充会影响加密的二进制输出。我尝试与set to一起使用,但仍然无法正常工作。PKCS1
PKCS1MD2
PKCS1MD5
PKCS1SHA1
kSecPaddingPKCS1
fOAEP
false
kSecPaddingPKCS1
相当于PKCS #1 1.5。回到理论的绘图板......
其他新尝试的理论:
- iPhone 上的证书(.cer 文件)与服务器上的 PKCS#12 包(.pfx 文件)并不完全相同,因此它永远无法工作。在不同的证书存储中安装了 .cer 文件,并且服务器加密的字符串往返就好了;
- 转换为 base-64 和 POST 到服务器的行为导致了同一个类往返中不存在的奇怪,所以我首先尝试了一些 URLEncoding/Decoding,然后从 iPhone 发布原始二进制文件,验证它是相等的,并得到相同的坏数据;
- 我的原始字符串是 125 字节,所以我认为它可能会在 UTF-8(长镜头)中被截断,所以我将其裁剪为 44 字节的字符串而没有结果;
- 回顾 System.Cryptography 库以确保我使用了适当的类并发现了“RSAPKCS1KeyExchangeDeformatter”,对新的前景感到高兴,当它的行为完全相同时感到沮丧。
成功!
事实证明,我在 iPhone 模拟器上的钥匙串中有一些东西弄脏了水,可以这么说。我删除了 Keychain DB 以~/Library/Application Support/iPhone Simulator/User/Library/Keychains/keychain-2-debug.db
使其重新创建并且工作正常。感谢您的所有帮助。数字这将是一些简单但不明显的事情。(我学到了两件事:1)从模拟器中卸载应用程序不会清除其钥匙串条目,2)定期重新启动。)
注意:钥匙串文件的通用路径取决于 iOS 版本:~/Library/Application Support/iPhone Simulator/[version]/Library/Keychains/keychain-2-debug.db 例如,~/Library/Application Support/ iPhone模拟器/4.3/Library/Keychains/keychain-2-debug.db
python - 使用 OpenSSL 生成的密钥进行 Python RSA 解密
有谁知道使用 Python 库导入 OpenSSL RSA 私钥/公钥(使用密码)并使用它来解密消息的最简单方法。
我查看了 ezPyCrypto,但似乎无法让它识别 OpenSSL RSA 密钥,我尝试使用 importKey 导入密钥,如下所示:
在我的例子中,myKey 是一个 OpenSSL RSA 公钥/私钥对,表示为一个字符串。
这不同意:
必须使用键实例作为第一个参数调用未绑定方法 importKey()(改为获取 str 实例)
API 文档说:
importKey(self, keystring, **kwds)
有人可以建议我如何阅读使用 ezPyCrypto 的密钥吗?我也试过:
但这不符合:
ezPyCrypto.CryptoKeyError:尝试导入无效密钥,或密码错误
此处链接到文档:
http://www.freenet.org.nz/ezPyCrypto/detail/index.html
编辑:只是对此的更新。成功导入了 RSA 密钥,但由于 eqPyCrypto 不支持 AES 分组密码,因此在解密时遇到了真正的问题。只是让人们知道。我成功地使用 ncrypt ( http://tachyon.in/ncrypt/ ) 完成了我想做的事情。由于 SWIG 和 OpenSSL 编译问题,我在使用 M2Crypto 时遇到了一些编译问题,尽管安装的版本超过了最低要求。目前看来,Python 加密/解密框架有点像雷区。呵呵,谢谢你的帮助。
python - 用python加密
如果我想使用:
那么它将如何检索密钥?recip 会打印什么?
我需要从服务器(开放密钥服务器)获取收件人的公钥,首先我需要将密钥存储在服务器上。
encryption - 产生非常大的素数
我正在玩耍并尝试编写 RSA 的实现。问题是我一直在生成大量质数,这些质数涉及生成密钥对。有人能指出一种快速生成巨大素数/可能素数的方法吗?
c# - 在托管环境中使用 RSACryptoServiceProvider 或 RSA
我想使用公共/私人加密,我的网络应用程序将使用私钥签署 xml 文档或一段数据,并将使用公钥在应用程序中对其进行验证,
如果没有其他可能的解决方法,是否可以在 .net 2.0 托管环境中使用 RSACryptoServiceProvider?
.net - 是否可以使用.net RSACryptoServiceProvider 使用私钥加密?
我知道 RSACryptoServiceProvider 可以用公钥加密,然后可以用私钥解密。
是否可以使用 RSACryptoServiceProvider 使用私钥加密并使用公钥解密?
c# - ProtectSection 和 RsaProtectedConfigurationProvider 密钥在哪里?
我正在使用 System.Configuration 来加密和保护自定义配置部分中的一些密码:-。
这似乎工作正常,但我的文档需要一些额外的信息。
密钥存储在哪里?
钥匙有多长?