问题标签 [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.
python - Python:如何添加 RSA 填充?
我一直在查看大多数 python 加密库,我决定使用 PyCrypto 或 M2Crypto。
我已经放弃了 ezPyCrypto,因为它只支持 MD5 进行签名和 Keyczar,因为它还不够成熟。
所以我读到如果未正确填充要加密的文本(或签名哈希),RSA 很容易受到多种攻击。
这是什么意思?
PyCrypto 或 M2Crypto 都没有提到这件事,谷歌也没有发现任何相关的东西。这些库会自动添加 paddign 吗?怎么能说出来?
如果上面的答案是否定的,那么什么被认为是适当的填充?
macos - 没有主目录的用户的 SSH 公钥
我正在运行 Mac OS X Leopard Server,我创建了一个新用户,但没有为该用户指定主目录。是否可以让该用户使用公钥进行身份验证?
我知道当用户确实有一个主目录时,它会进入~/.ssh/authorized_keys
我不想为这个用户创建一个主目录,因为我的理解是,如果给予物理访问权限,它将允许他们登录。
更新:我只需要允许该用户进行安全 FTP 连接。将 Login Shell 设置为/bin/false/
也将阻止它们进行远程连接。
c# - 在 .NET 程序集中如何使用公钥解密?
.NET 签名的程序集包含公钥,但是公钥在 RSA 中用于加密,那么 .NET 是如何使用公钥来解密签名程序集的呢?
好的,签名的程序集包含散列,但散列是使用私钥而不是公钥加密的。那么,为什么以及如何在 .NET 中使用私钥进行加密,使用公钥进行解密。我的意思是,像 RSACryptoPad 这样的所有软件都使用公钥进行加密而不是解密。
c# - C# RSA 等效于 C++ Crypto API 的代码
上面的代码如何用 C# 编写。我对 Crypto API 调用特别感兴趣。请注意,使用的加密方法是 RSA
c# - RSACryptoServiceProvider <-> CryptImportKey 等效性
如果我有一个从非托管应用程序创建的密钥,并且我想将此密钥导入托管应用程序并生成另一个密钥或对其进行加密。基本上相同的密钥将从托管和非托管代码中来回导入/导出。
因此什么等价于
和
在使用 RSACryptoServiceProvider 的托管世界中?
RSACryptoServiceProvider 类中的哪一组方法等价于上述 Crypto API
c# - C# 中的 CryptExportKey
与此CryptExportKey调用等效的 C# 是什么?
如果您可以在您的 C# 代码中给出描述,那就太好了
正在使用 hKey、hPublicKey 和 SIMPLEBLOB(或它们在 C# 中的等价物)
.net - 使用 RSA 加密的加密数据大小 (RSACryptoServiceProvider)
我需要在我正在进行的一个项目中使用一些加密机制。我正在探索 RSA 加密并编写了一些示例程序来学习。
我了解 RSA 加密的块大小为 16 个字节。因此,我将字符串“12345678”作为以下函数的输入:
现在我得到的加密字符串是 128 个字节(256 个十六进制字符)。这个字符串对我来说太大了。我有点希望如果我提供 16 字节的纯数据,我会得到 16 字节的加密数据。难道我做错了什么?这是应该发生的事情吗?我可以以某种方式缩短加密数据吗?
c# - 加密 API <-> .NET RSA 互操作性
我有一个使用 Crypto API 生成 RC4 加密密钥的非托管应用程序。此非托管应用程序使用此 RC4 密钥加密某些数据。还有一个客户端非托管应用程序使用此 RC4 密钥来解密信息。
但是,对于这个客户端应用程序,我们正在发送一个会话密钥 -> 使用在客户端生成的 RSA 公钥(SIMPLEBLOB)加密的 RC4 密钥。加密会话密钥的生成过去是使用非托管代码完成的,但现在必须将其转换为 C#,因为需要在部分信任下从 Web 应用程序运行此代码。
密钥是使用生成的
它被导出到文件系统使用
(注意我能够使用这篇文章 http://www.codeproject.com/KB/security/plaintextsessionkey.aspx导出纯文本密钥)
客户端公钥是使用创建的
使用导出客户端公钥
会话密钥是在服务器端使用创建的
客户端公钥是使用导入的
CryptImportKey(hProv, lpData, nSize, NULL, 0, &hPublicKey
会话密钥是通过使用客户端公钥加密 RC4 生成 SIMPLEBOB 格式来生成的
CryptExportKey(hKey, hPublicKey, SIMPLEBOB, 0, lpData, &nSize);
现在我的要求是在托管版本中执行上述步骤(步骤 1 和 2),这就是我正在做的事情:
//读取使用代码项目文章提取的纯文本密钥数据 byte[] keyMaterial = File.ReadAllBytes(@"C:\keyMaterial.txt");
// 导入客户端公钥
这会生成与其非托管版本相同大小的数据,但它不会像非托管版本的第 1 步和第 2 步那样生成正确的 SIMPLEBLOB 会话密钥。我在这段代码中做错了什么?
encryption - SHA1 VS RSA:它们之间有什么区别?
SHA1 和 RSA 有什么区别?它们只是不同的算法,还是它们从根本上(即用于不同的事物)在某种程度上不同。