Tag: 密码学

如何存储/检索RSA公钥/私钥

我想使用RSA公钥encryption。 什么是存储或检索私钥和公钥的最佳方式? XML是一个好主意吗? 如何获得钥匙? RSAParameters privateKey = RSA.ExportParameters(true); RSAParameters publicKey = RSA.ExportParameters(false); 由于RSAParameters具有以下成员:D,DP,DQ,指数,InverseQ,模数,P,Q 哪一个是关键?

如何从byte 数组恢复RSA公钥?

我想知道是否有可能恢复先前已转换为字节数组的RSA公钥。 byte[] keyBytes = publicKey.getEncoded(); 谢谢您的帮助。

私钥长度字节

所以即时通讯生成2048 RSA密钥对。 但是当我看私钥长度只有1232字节。 这与2048有什么关系呢?还是2048就是模数的大小?

我怎样才能哈希密码postgresql?

我需要在postgresql上使用salt来encryption一些密码,而且我还没有find任何相关的文档来说明如何完成这些工作。 那么我怎样才能在PostgreSQL的哈希密码(与一些盐)?

你将如何保密秘密数据在iPhone应用程序的秘密?

假设我需要从iPhone应用程序访问Web服务。 这个Web服务需要客户端对HTTP请求进行数字签名,以certificate应用程序“知道”共享密钥; 一个客户端密钥。 请求签名存储在HTTP标头中,并且只通过HTTP(而不是HTTPS)发送请求。 此密钥必须始终保密,但需要由iPhone应用程序使用。 那么,如果您一直被告知不要在客户端存储任何敏感信息,您将如何安全地存储这个密钥? 普通用户(99%的用户)会很高兴地使用这个应用程序。 会有人(敌人?)想要这个秘密的客户端密钥,以通过冒充的方式对服务或客户端密钥所有者造成伤害。 这样的人可能会越狱他们的电话,访问二进制文件,运行“string”或hex编辑器,并捅四周。 因此,将密钥存储在源代码中是一个可怕的想法。 另一个想法是将密钥存储在代码中,而不是string文字,而是存储在由字节文字创build的NSMutableArray中。 人们可以使用钥匙串,但由于iPhone应用程序永远不需要提供密码来存储钥匙串中的东西,我很谨慎,有人可以访问应用程序的沙箱可以并且能够简单地查看或简单地解码其中的项目。 编辑 – 所以我读了关于钥匙串的这个:“在iPhone OS中,应用程序总是可以访问自己的钥匙串项目,并且不能访问任何其他应用程序的项目。系统为钥匙串生成自己的密码,并存储密钥在设备上,这样的方式,任何应用程序都无法访问。“ 所以也许这是存储密钥的最好的地方….如果是这样的话,我应该如何使用预先input到应用程序密钥链中的密钥? 那可能吗? 否则,你怎么能在第一次启动的时候添encryption钥,而不是密钥在源代码中? 嗯.. 编辑 – 提交错误报告#6584858在http://bugreport.apple.com 谢谢。

我应该使用初始化向量(IV)以及我的encryption吗?

build议使用初始化vector来encryption/解密我的数据吗? 它会使事情更安全吗? 这是否需要逐案评估? 为了将其应用到实际环境中,Win32encryption函数CryptSetKeyParam允许在encryption/解密之前在密钥上设置初始化vector。 其他API也允许这样做。 什么是一般build议,为什么?

给定一个私钥,是否有可能派生出它的公钥?

无论我通过阅读各种资料来理解,公私密钥对都是不对称encryption的基础,也是select两个素数(大致是你的私钥)和乘以它们(大致是你的公钥)看来如果你知道私钥就可以生成一个公钥。 这是正确的,或者我错了什么? [编辑] 是什么让我更加困惑的是, 只有私钥(使用.NET类RSACryptoServiceProvider) 才能将RSA密钥序列化为XML。 不知道这个限制是否是有意的!

CryptographicException在试图导出X509私钥的RSAParameters时“密钥无法在指定状态下使用”

我盯着这一段时间,感谢MSDN文档,我无法弄清楚发生了什么事情。 基本上我是从光盘加载一个PFX文件到X509Certificate2并尝试使用公钥encryption一个string,并使用私钥解密。 为什么我感到困惑:当我将引用传递给RSACryptoServiceProvider本身时,encryption/解密工作: byte[] ed1 = EncryptRSA("foo1", x.PublicKey.Key as RSACryptoServiceProvider); string foo1 = DecryptRSA(ed1, x.PrivateKey as RSACryptoServiceProvider); 但是如果导出并传递RSAParameter : byte[] ed = EncryptRSA("foo", (x.PublicKey.Key as RSACryptoServiceProvider).ExportParameters(false)); string foo = DecryptRSA(ed, (x.PrivateKey as RSACryptoServiceProvider).ExportParameters(true)); …它会抛出一个“密钥在指定状态下无效”。 尝试将私钥导出到RSAParameterexception。 请注意PFX生成的证书被标记为可导出(即,我在创build证书时使用了pe标志)。 任何想法是什么导致例外? static void Main(string[] args) { X509Certificate2 x = new X509Certificate2(@"C:\temp\certs\1\test.pfx", "test"); x.FriendlyName = "My test Cert"; X509Store store […]

为什么Git不使用更现代化的SHA?

我读过关于Git使用SHA-1摘要作为修订的ID。 为什么不使用更现代版本的SHA?

在哪里指定PEM文件格式?

我需要parsing.PEM文件。 我知道“隐私增强型电子邮件”的标准是在RFC 1421-24中定义的。 但是他们似乎没有提到我在OpenSSL.pem文件(例如“Key Attributes”,“BEGIN CERTIFICATE”等等)中find的一些文本。这是一个OpenSSL特定的格式吗?