问题标签 [secret-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 投票
2 回答
1907 浏览

c++ - 确定性地生成加密安全密钥和 IVEC

背景

我正在设计一个系统,可以为静态 Web 内容的用户开发动态身份验证方案。其动机是预先生成大量复杂但敏感的 Web 内容,然后使用基于 cookie(嵌入可逆加密信息)的身份验证静态地提供它,由 Web 服务器单独强制执行。使用 AEAD 模式加密原语。

问题

我需要生成在一段时间内有效的 IVEC 和密钥,比如一周(当前有效对)。并且过去的 IVEC/密钥也有效期为 2 周(历史有效),并且使用历史有效机密加密的任何数据都将使用当前有效的 IVEC/KEY 重新加密。

我需要的是一个确定性的 CSPRNG,它包含随机数和密码短语的种子,并且可以以索引方式生成 64 位或 128 位数字块。如果我使用“自 1970 年 1 月 1 日以来的几周”作为我假设的 CSPRNG 的索引元素之一,我应该能够构建一个系统,随着时间的推移自动更改密钥。

我正在考虑的方法

现在我在 cryptopp 中看不到这样的功能,或者我现在已经足够了解术语了,而且由于 cryptopp 是目前最先进的加密库,我没有信心找到另一个。所以,如果我找不到那里的实现,我应该推出自己的。从连接的数据中生成一个静态字符串结构,然后对其进行散列(如下所示)可以解决问题吗?

RIPEMD160(RandomPreGeneratedFixedNonce:PassPhrase:UInt64SinceEpoch:128BitBlockIndexNumber);

注意:块编号将被分配并具有规则的结构,例如对于 128 位摘要,块 0 的前 64 位将用于 ivec,而元素 1 的所有元素将用于 128 位密钥。

这是一种合理的方法(--即加密安全)吗?

-- 编辑:发表接受评论 --

经过一番思考,我决定将我最初认为的密码短语和 nonce/salt 合并为一个 16 字节(加密强)密钥,并使用 PKCS #5 中概述的技术来派生多个基于时间的密钥。不需要盐,因为不使用密码。

0 投票
1 回答
1611 浏览

c# - 使用 Amazon AWS 密钥部署 C# 客户端应用程序 (S3)?

我今天写了我的hello world AWS 程序——简单的文件上传到预制的 S3 存储桶。

在部署到客户端桌面的这个程序的上下文中(为了争论),我的秘密访问密钥安全吗?

using (AmazonS3Client a = new AmazonS3Client("MyAccessKey", "MySecretAccessKey")) {

0 投票
4 回答
11381 浏览

git - 当您的项目中有密钥时,如何才能推送到 GitHub?

我正在尝试将一个全新的空 Rail 3.0.4 项目推送到 GitHub,但只是意识到 cookie 会话存储有一个密钥:

config/initializers/secret_token.rb

那么我们如何避免它被推送到 GitHub 上呢?我们可以忽略这个文件(使用.gitignore),但是没有这个文件,Rails 应用程序将根本无法运行(并且不是一个完整的 Rails 应用程序)。或者一般来说,其他文件或框架也可能包含包含密钥的文件。这种情况下,推送到 GitHub 时应该如何处理呢?

0 投票
4 回答
20056 浏览

twitter - 如何将秘密 API 密钥存储在应用程序的二进制文件中?

我正在为 Mac OS X 创建一个 Twitter 客户端,并且我有一个消费者机密。据我了解,我不应该分享这个密钥。问题是当我将它作为字符串文字放入我的应用程序并使用它时,如下所示:

它位于我的应用程序二进制文件的数据部分。黑客可以阅读此内容、反汇编应用程序等。

是否有任何安全的方式来存储消费者的秘密?我应该加密它吗?

0 投票
2 回答
1649 浏览

actionscript-3 - 有没有在 Flex 3 中实现加密的最佳方法

我们有一个应用程序,我们从其中一种产品设计工具中提取一些机密信息。因此,我们使用 HTTPS 作为通道,并且我们在将请求参数和一些数据发送到 Web 服务之前对其进行加密。所以,一切似乎都很好。

但是当我们给应用程序进行安全审计时,他们发现我们已经在源代码中硬编码了加密密钥。他们使用 Sothink SWF Decompiler 来查看我的 SWF 文件。他们抓住了钥匙并对此表示担忧。

我们使用 Flex 3(SDK 3.4) 开发了这个应用程序。有没有最好的方法来使用密钥而不在源代码中进行硬编码。如果有人遇到这种问题,请告诉我。

任何人,请建议我在不进行硬编码的情况下使用 SourceCode 中的密钥的最佳方法。

这是我的示例代码:

0 投票
1 回答
3874 浏览

perl - Perl 代码为 HMAC SHA256 签名生成密钥?

我计划使用类似于Amazon AWS 示例的代码来验证签名的 API 请求。所以用户会有类似的东西:

$digest并作为参数附加到他们的请求 URI。服务器端将使用相同的算法从客户端 URI 创建摘要,并将其与客户端发送的值进行比较。

我找不到的是Perl支持生成正确长度的 SecretKey 以在生成 HMAC SHA256 摘要时使用。

对于我的 Amazon AWS 账户,我得到了一个 40 ASCII 字符的 base64 编码字符串。

如何为我的客户生成正确的密钥?

0 投票
1 回答
327 浏览

iphone - 苹果二进制文件有多安全(密钥安全)

我正在为 iPhone 开发一个应用程序,它使用 HTTP 请求从网络服务器获取报价数据。

我正在与另一位管理 Web 服务的开发人员合作。我们使用 MD5 加密(简单异或)在 iPhone 和网络服务器之间传递数据。

他今天早上向我提出了一个问题,坦率地说,这超出了我的知识范围。

“苹果二进制文件有多安全?”

他担心是否有人可以通过 iTunes 获得 .app 捆绑包,然后对该捆绑包进行解码并直接访问我的源代码,从而让他们获得我们用来对数据进行编码的密钥。

我个人甚至不知道从哪里开始,但我敢肯定那里有更多知识渊博/狡猾的家伙。

那么,有可能吗?如果是,我能做些什么来保护我的来源?

0 投票
1 回答
6549 浏览

java - 以后如何使用 KeyGenerator 生成的密钥?

我正在编写一个在 DES 中同时进行加密和解密的程序。解密时应该使用加密过程中使用的相同密钥,对吗?我的问题是加密和解密在不同的机器上运行。这就是在加密过程中生成密钥的方式。

所以,我想我会把密钥写到文件中。但看起来我可以将 SecretKey 对象类型转换为 String 但反之亦然!那么,如何提取文本文件中包含的密钥呢?并作为输入传递给该语句?

或者是否可以在加密和解密过程中将密钥作为用户的输入?

0 投票
1 回答
42241 浏览

java - 为什么我的 AES 加密会引发 InvalidKeyException?

我目前正在研究使用密钥加密/解密特定文件的功能。我写了三个类,一个生成密钥,一个用密钥加密文件,一个解密。

生成密钥并加密文件工作正常,但是当我尝试解密文件时,在 line: 处抛出异常c.init(Cipher.DECRYPT_MODE, keySpec);

java.security.InvalidKeyException:缺少参数

我认为我在将密钥流式传输到我byte[]时做错了,或者在解密文件时出现了问题。

三个类的快速解释: KeyHandler 创建一个 AES 密钥并将其存储在硬盘上。密钥/明文/加密/解密文件的名称目前是硬编码的,用于测试目的。

EncryptionHandler将磁盘上的 .txt 文件传输为字节,使用密钥加密文件,然后使用 .txt 将加密的字节写入磁盘CipherOutputStream

DecryptionHandler当然相反EncryptionHandler

这是代码:

0 投票
3 回答
8921 浏览

java - Java - 将字符串转换为 DES 密钥

我得到了一个字符串形式的密钥和一个使用 DES 的加密文件。这是我所知道的。我不知道密钥是如何编码的。

还有一个可以用来解密的des.exe,这是我在网上找到的全部:http: //knowledge-republic.com/CRM/2011/07/how-to-decrypt-extract-recreate-thecus -存储固件/

使用 des.exe,它使用的唯一命令是“-D”,而不是“-d”。

我的目标是使用 Java 来做同样的事情。我从某个地方复制并粘贴了这个

它不起作用。

将字符串转换为键还有哪些其他选项?

可能应该补充一下,我是密码学的新手。