问题标签 [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 回答
7532 浏览

java - PGP 使用什么算法使用密码来加密私钥?

PGPKeyRingGenerator 构造函数接受一个密码来加密私钥。它用于执行此操作的算法是什么?它有一个名为 encAlgorithm 的字段,但我找不到任何解释这些算法是什么的文档。

0 投票
1 回答
2505 浏览

java - 在 MySQL-DB 中存储私钥和公​​钥

可能已经有人问过了,但我找不到任何有用的信息,而且我以前从未这样做过。

所以这就是问题所在。

如果我将获得一组具有不同时间有效性和唯一 ID 的密钥对(DSA 公钥和私钥),那么使用 Java 将它们存储在 MySQL-DB 中的最佳方法是什么?

将它们存储在数据库中是个好主意吗?

先感谢您。

穆尔

附言。另一个问题,我真的无法想象,这两个键的外观如何?只是字节数组?

0 投票
1 回答
4549 浏览

recaptcha - reCAPTCHA 的公钥和私钥有什么用?

reCAPTCHA 需要公钥和私钥才能实施到网站中。它还需要 reCAPTCHA 密钥,具体取决于网站。这背后的原因是什么?公钥和私钥是否会影响 reCAPTCHA 中显示的单词?我知道我可以将公钥和私钥设置为 GLOBAL,它可以用于其他域,但为什么首先需要密钥?

0 投票
3 回答
187 浏览

language-agnostic - 如何为服务器身份验证编写私钥/公钥系统?

我想这可能已经发布在某个地方,我确实搜索过,但找不到任何东西。

我有一个运行游戏服务器的服务器,我希望有一些 TCP 服务器(可能用 Ruby 编写),它将提供一个伪会话,可用的命令很少(比如重新启动游戏服务器、发送日志等) .)

我想要的是一种类似 SSH 的身份验证,人们拥有公共和私人 DSA 密钥(我知道如何生成),并且公共密钥被服务器识别为正确的身份验证。

我不是在寻找代码实现,而是主要应该如何构建它。

我的想法是这样的:

  • [Client]连接到服务器
  • [Server]发送公钥
  • [Client]发送使用服务器公钥编码的公钥
  • [Server]将密钥与授权客户数据库进行比较
  • [Server]生成会话密钥,使用客户端 pub 加密发送
  • [Client]解码会话密钥并开始发送始终伴随会话密钥的消息

但我觉得这缺少了一些东西。特别是,在查看 DSA 和 PK 系统时,我不断看到消息签名,但我不确定我是否理解它与使用 pub 密钥加密和会话密钥有什么不同?

如果我的问题不清楚,我当然很乐意编辑我的帖子:-)。

0 投票
4 回答
359 浏览

.net - .NET 中的公钥和私钥除了 RSA

除了 RSA 之外,我在这里是否遗漏了一些明显的东西(我希望是这样),.NET 中是否还有其他使用公钥和私钥的加密方法?

谢谢!

0 投票
1 回答
5073 浏览

certificate - 如何强制 makecert 将私钥输出到文件(而不是 Crypto 存储)?

我想生成一个密钥对以在我的应用程序中使用,但是从 mmc 手动导出它们很痛苦。

如何使用命令行参数,或者以其他方式最终获得位于硬盘驱动器上的私有证书,适合以后分发?

0 投票
1 回答
657 浏览

.net - 使用 .snk 的私钥签署任意数据

我正在开发一个 .NET包管理器,让我想到的一件事是安全性。

鉴于任何人都可能将程序集上传到存储库,我如何验证所述程序集来自受信任的来源?例如,NHibernate.dll如果它是用来自 NHForge 的人的私钥签署的,我会更加信任。为了确保这一点,我所要做的就是使用 NHForges 的公钥验证程序集签名。

现在,考虑到这一点,如何建立这种关系(这个特定的公钥属于这个特定的人)?我想出的一个想法如下:

  • 项目作者创建一个 XML 文件,其中包含有关项目和作者的信息(姓名、电子邮件等)
  • 此 XML 文件使用从文件中提取的作者私钥进行签名,该.snk文件稍后用于对程序集本身进行签名
  • 作者将此签名的 XML 文件上传到存储库,在那里对其进行检查并建立作者和公钥之间的关系

为了实现这一点(这是一个可行的想法,顺便说一句?),我需要一种访问.snk文件和读取 PK 的编程方式。.NET 中是否有这方面的内容?

0 投票
1 回答
7228 浏览

.net - 与证书战斗:未成功获取私钥的访问权限

我与许多服务器和开发人员的 PC 一起工作。服务器是win2003,PC开发者Windows XP。

在名为 preiis01 的服务器 Win2003 中,在预生产环境中,公司中的其他人使用任何其他用户(对我来说是未知用户)安装客户端证书以登录服务器 preiis01。

我使用我的用户“domainCompany\myuser”登录服务器 preiis01(使用终端服务器,Windows XP 的远程桌面)。

在 preiis01 中,

我执行 mmc -> Snap in -> 本地机器证书。在节点 -> 个人 -> 证书中,我看到了客户端证书:

签发给 ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1

由 FNMT 第 2 类 CA 颁发

在证书属性中,我看到了指纹:“93 bc a4 ad 58 c9 3c af 8b eb 0b 2f 86 c7 9d 81 70 a6 c4 13”

现在,我执行以下命令:

1.) FindPrivateKey My LocalMachine -n​​ "CN=ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1" -a

我得到这个错误:

FindPrivateKey 失败,原因如下:在商店中找不到密钥为“CN=ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1”的证书。

2.) FindPrivateKey My LocalMachine -t "93 bc a4 ad 58 c9 3c af 8b eb 0b 2f 86 c7 9d 81 70 a6 c4 13" –c

我明白了:

*FindPrivateKey 帮助用户查找 X.50 9 证书的私钥文件的位置。

用法:FindPrivateKey [{ {-n } | {-t } } [-f | -d | -一个]]

例如 FindPrivateKey My CurrentUser -n "CN=John Doe"

例如 FindPrivateKey 我的 LocalMachine -t "03 33 98 63 d0 47 e7 48 71 33 62 64 76 5 c 4c 9d 42 1d 6b 52" -c*

3.) winhttpcertcfg.exe -l -c LOCAL_MACHINE\My -s "ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1"

我得到这个错误:

Microsoft (R) WinHTTP 证书配置工具 版权所有 (C) Microsoft Corporation 2001。匹配证书:

CN=ENTIDAD COMPANY INSURE SA - CIF A93 - NOMBRE SURNAME1 NAME1

OU=700012436

OU=FNMT 第 2 类 CA

O=FNMT

C=ES

错误:

未成功获取私钥的访问权限。这只能由安装证书的用户完成。

未成功获取私钥的访问权限。

有什么建议么 ??

更新:Marcel Roma(社交 msdn 论坛)

很可能该证书是由您公司中的其他人(例如管理员)安装的。只有该人有权访问证书的私钥。下载FindPrivateKey工具,让管理员执行找到保存私钥文件的目录,并让他设置所需的权限,以便进程可以访问该文件。

还有一些关于 Windows XP 由于编码问题而无法从文件中提取私钥的报告:

http://blogs.msdn.com/b/alejacma/archive/2010/01/11/winhttpcertcfg-tool-cannot-access-private-key-of-a-certificate.aspx

更新:

域“domainCompany\Pre_Certificado”中的用户在存储本地计算机中安装证书。

domainCompany\Pre_Certificado 是管理员,在 IIS_WPG 组中,具有本地策略:“作为服务登录”</p>

我在 IIS 6.0 中配置 AppPool Identity 为:domainCompany\Pre_Certificado

ASP.NET 应用程序使用身份执行:: domainCompany\Pre_Certificado

我回收 AppPool 并执行应用程序,我得到 System.Security.Cryptography.CryptographicException: 找不到用于解密的证书和私钥

如果我再次测试,在服务器 IIS 中登录会话,使用 domainCompany\Pre_Certificado 用户,我在 ASP.NET 应用程序中调用页面,一切正常。

(注意:使用终端服务器登录服务器 IIS)

但是如果在服务器 IIS 中注销会话(用户:domainCompany\Pre_Certificado),我会得到同样的错误:

System.Security.Cryptography.CryptographicException:找不到用于解密的证书和私钥

有什么建议么 ??

0 投票
1 回答
3927 浏览

.net - 带有私钥的证书 pfx pkcs#12 的“找不到用于解密的证书和私钥”

我有以下 .Net 代码 (asp.net) 用于使用客户端证书进行签名。

我将客户端证书存储在本地计算机而不是当前用户下。

客户端证书是 pfx pkcs#12 并且有私钥

导入的私钥未标记为可导出。

我在受密码保护的客户端证书中的私钥。

在上面的最后一行,我收到错误“找不到用于解密的证书和私钥”。

使用我的代码时,似乎无法访问私钥。

无论如何我可以将私钥与我的客户证书相关联吗?有什么建议么 ?

编辑:AppPool 中的身份可能存在问题。在 LocalMachine Store 中安装证书的用户必须是 WebSite 的 AppPool 的身份,并且在 IIS_WPG 组中。

解决方案:在域中创建用户,将其添加到 IIS_WPG 组中,将其添加为 Identity AppPool。使用创建的用户在存储本地计算机中安装证书。

0 投票
3 回答
2298 浏览

security - 异或 (XOR) 加密的安全性

众所周知,XOR 加密非常弱。但是,如果我有一个由多个不同(理想情况下是素数)长度的密钥组成的密钥,这些密钥组合起来形成一个更长的密钥,这有多弱。例如,我有一个长度为 5、9 和 11 的文本密钥。如果我只是使用 XOR 加密应用第一个密钥,那么它应该很容易破解,因为加密字节将每 5 个字节重复一次。但是,如果我“覆盖”这些键中的 3 个,我会得到 5*9*11 = 495 的有效非重复长度。这对我来说听起来很强大。如果我使用一首诗的几节经文,每行作为键,那么我的非重复长度将比大多数文件大得多。这会有多强(假设密钥仍然保密!:)