问题标签 [private-key]

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 投票
3 回答
4855 浏览

php - 使用私钥加密/解密

我想在我拥有的一些 Flash/PHP 应用程序中实现一些安全性。

我有一些与 PHP 文件通信的 Flash 应用程序,并且 PHP 将数据作为获取字符串(例如:)发送name=John&sname=Doe&age=24&balance=12.4。而不是所有这些变量,我希望它发送一个flashvar=jr9afgaw9-fg90agfawf7gw包含这些值的变量(例如:),因此 Flash 将解密字符串并获取真实且有用的变量。

我想使用私钥对其进行加密,并使用相同的私钥在 Flash 中对其进行解密。如果有人想解码 PHP 发送的消息,他必须反编译 flash 文件并找到我在 Flash 中使用的私钥来解码消息,然后对其进行解码。

我在这里发布的原因是因为我想使用一种加密算法,它只允许使用私钥进行加密/解密。

我是密码学领域的新手,我想对此提出一些建议。

谢谢!

0 投票
2 回答
8923 浏览

c - 我们如何复制包含 RSA 密钥的 EVP_PKEY?

我找到了EVP_PKEY_copy_parameters可以复制的功能EVP_PKEY。但是一些关于这个函数的文档说它只能用于 DSA/ECC 算法。官方文档(来自openssl.org)没有提到该函数是否可用于 RSA EVP_PKEYs。

EVP_PKEY(包含 RSA 密钥)的另一个实现可能是这样的:

你有什么建议吗?

0 投票
0 回答
59 浏览

amazon - 在代码中保护亚马逊访问密钥

亚马逊网络服务要求我们提供 id 和密钥,以便向我们的网络应用程序发出请求。虽然可以为不同的服务创建几个具有不同授权的密钥对,但这仍然意味着我们必须将我们的密钥存储在 Web 应用程序或数据库中。

是否有标准的安全方式或最佳方式来存储您的 web 应用程序的密钥?你现在用什么?

我不希望其他开发人员访问可能授予特权访问他们不应该访问的内容的密钥。因此,将密钥提交到存储库是一个问题。

0 投票
2 回答
6143 浏览

objective-c - 以编程方式从 Mac 钥匙串存储和检索私钥

在 Mac 应用程序中,我需要以安全的方式存储从服务器发送给登录用户的私钥,并在需要时以编程方式将其取回。我知道钥匙串是存储私钥的最佳位置。是否有任何示例代码可用于实现此目的?

我可以使用“Security.framework”的“SecKeychainItemImport”方法将私钥添加到钥匙串,但在从钥匙串中取回私钥时遇到问题。我尝试使用“SecKeychainItemCopyAttributesAndData”和“SecKeychainItemCopyContent”方法从钥匙串中获取私钥。但到目前为止还没有运气。

我还在博客中读过提到“.ssh”隐藏文件夹中的私钥存储。但我觉得将私钥存储在钥匙串中提供了更高级别的安全性,因此其他人无法轻松访问私钥。

0 投票
13 回答
84513 浏览

android - 为 Android 应用程序创建密钥库时访问被拒绝

我正在尝试签署我的 Android 应用程序,以便可以在 Market 中发布它。当我生成密钥库时,我收到拒绝访问错误。我该如何解决?

安卓密钥库选择

这就是我一直在尝试做的事情:

  1. 右键单击 Eclipse Helios 中的项目。
  2. Android 工具 > 导出签名的应用程序包。
  3. 点击下一步。
  4. 我检查了“创建新密钥库”并意识到它对我没有任何帮助。它仍然要求密钥库的位置。所以我决定以艰难的方式去做。
  5. 关闭只读访问C:\Program Files\Java\jdk1.6.0_25\bin并授予该CREATOR OWNER组对该文件夹的完全控制权。
  6. 在 Windows 7 64 位上打开命令行。
  7. 遍历到C:\Program Files\Java\jdk1.6.0_25\bin
  8. 运行密钥工具。
  9. 收到拒绝访问错误。

.

编辑:

每次我检查文件夹权限时,我都会看到它已恢复为只读状态。每当我关闭只读时都没有错误。

0 投票
2 回答
2955 浏览

php - 什么是带有openssl_seal和openssl_open(都是PHP)的public-private-key-encryption的Android对应物?

我刚开始开发一个需要与服务器/数据库通信的 android-app。在服务器端,我使用 PHP 来收集数据或执行查询。我阅读了很多关于安全性(XSS、SQL 注入等)的内容。因为我还想加密客户端和服务器之间发送的数据,所以我开始在 PHP 中处理 openssl 函数。

openssl_seal- 和 openssl_open-functions 似乎很适合这个目的。我写了这两个函数:

“a”是数据(加密/加密),而“b”是由 openssl_seal 生成并用于解密的随机密钥。

这两个密钥文件是在 Windows 上使用

  • privateKey 文件的“openssl.exe genrsa -out private.key 1024”
  • 公开密钥文件的“openssl.exe rsa -in private.key -out public.pem -outform PEM -pubout”

在 PHP 中,这一切都按预期工作。

但是如何在 Android 中实现相同的技术(我是初学者!)?

我在网上搜索了与 PHP 端的 openssl_seal 结合使用的示例,但没有发现任何工作。

  1. 我希望能够在 Android 端加密数据并在 PHP 上解密。
  2. 当服务器发送加密数据时,这将在 Android 端解密(我假设使用第二个公钥/私钥对)

我还实现了此处提到的示例,但这不起作用(openssl_private_decrypt 在 PHP 端始终为 FALSE)。所以这对我没有帮助,而它只是 Android=>PHP 加密而没有相反的方式。

总而言之:我正在寻找一种方法来加密和解密在 Android 和 PHP 之间发送的每一端数据,只有接收方可以解密数据。有人可以给我一个例子甚至一个线索吗?

0 投票
1 回答
168 浏览

rsa - 签署文件时密钥长度有何不同?

我从来没有上过任何关于加密或安全的课程,我正在尝试自学一些基础知识,所以如果这是一个愚蠢的问题,请原谅我(别担心,我没有做任何敏感的事情)

因此,我正在使用 Crypto++,以便我可以对文件进行签名,以查看该文件是否已被我以外的其他人编辑。库附带的测试应用程序看起来像它具有选项(rs 和 rv),它们完全可以在我自己的程序中执行我想要执行的操作(验证文件签名的完整性)。当然,在此之前我需要生成一个公钥和私钥。当使用测试应用程序的 g 选项这样做时,它会要求我以位为单位指定密钥长度。密钥长度有什么区别?

0 投票
1 回答
840 浏览

authentication - 什么是私钥挑战?

当我阅读有关智能卡的信息时,我遇到了这个称为私钥挑战的术语。

私钥质询 - 确保证书绑定到其颁发的令牌并且未被复制或克隆。

这个私钥挑战将如何完成?

谢谢并恭祝安康,

晴天。

0 投票
2 回答
7200 浏览

wcf - C# WCF 客户端错误“X.509 证书中不存在私钥”

我正在尝试创建一个非常简单的 WCF 客户端应用程序,它将 SOAP 消息发送到第 3 方服务。所有消息都必须经过数字签名。在我将代码添加到更大的应用程序之前,这确实是一个概念证明。

我有一个包含证书的 .cer 文件和一个包含私钥的 .pem 文件。我一直在尝试做的是使用 .cer 文件加载证书,然后发出一条消息。但我收到以下错误“X.509 证书中不存在私钥”。

问题,其中一个问题是,我真的对 WCF、数字证书、私钥和所有这些废话几乎一无所知。我做了一些阅读,我用谷歌搜索,直到我脸色发青,我一无所获。

如果我打开 .cert 文件,则会有一个标记为“BEGIN ENCRYPTED PRIVATE KEY”的部分,这表明私钥包含在证书中。那么,为什么我收到一条消息说它不存在?另外,如果确实需要将私钥添加到证书中,我该怎么做?

这里基本上是我在做什么。这不是我的实际代码,但它包含所有相关内容:

0 投票
3 回答
11026 浏览

url - 使用 HMAC 或 OpenSSL 进行 URL 签名

我对 url 签名感兴趣(例如http://.../?somearg=value&anotherarg=anothervalue&sig=aSKS9F3KL5xc),但我有一些要求让我没有解决方案。

  • 我将使用其中一个PHPPython用于页面,因此我需要能够使用两者之一来签名和验证签名。
  • 我的计划是使用 priv/pub 密钥方案对一些数据进行签名,并能够验证签名是否有效,但这就是复杂的地方:
  • 验证发生时数据未知(不仅仅是somearg=value&anotherarg=anothervalue

我的第一直觉是使用 OpenSSL,例如使用 RSA 密钥对,按照以下方式进行操作:签名:openssl rsautl -sign -inkey private.pem -in sensitive -out privsigned 并仅基于privsigned数据和密钥进行验证:openssl rsautl -verify -inkey public.pem -in privsigned -pubin

使用 PHPopenssl_get_privatekey()openssl_sign()签署数据就好了,但我需要知道(解密!)数据才能验证(我不会有):openssl_get_publickey()openssl_verify($data, $signature, $pubkeyid);来自http://php.net/openssl_verify

或者我在这里错过了什么?


Python所以我研究了 HMAC,但尽管和中都有许多散列函数,但PHP我对如何验证散列感到困惑。 PHP'shash_hmac()允许我使用“键”(或在本例中为字符串键)创建散列。但是我如何去验证一个散列是有效的(即&sig=不只是由最终用户手动输入&sig=abcdefg1234

总结一下(对不起,问题太长了):我如何验证我的服务器的(证书/字符串)密钥是否已生成签名/哈希(假设我无法通过重做所述数据的哈希来验证)?对于我应该选择哪条路线,Priv/pub-key 还是 HMAC,你有什么偏好吗?

非常感谢任何大小的指针!提前致谢,

  • 乔什