问题标签 [symmetric-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 投票
1 回答
660 浏览

java - 密钥存储实现允许使用密钥值存储属性?

我想知道是否有任何密钥存储实现允许存储密钥属性,比如名称/值对,以及对称密钥的值?看起来 JKS 和 JCEKS 只允许存储键值和键的别名,因此请寻找其他选项(如果有)。

不管如何处理名称/值对,只要它们可以被存储(实际上,由应用程序来理解它们)。

所以我想放在密钥库中的是:
alias1 - keyvalue1 - metadata1=[md1=value11 md2=value12 md3=value13 ...]
alias2 - keyvalue2 - metadata2=[md1=value21 md2=value22 md3=value23 ...]
...
不要关心元数据的编码,但它应该可以单独检索。

编辑: KeyStore.SecretKeyEntry有一个 CTOR 接受 a Setof Attributes 并使用KeyStore.setEntry一个可以传递这样的 aSecretKeyEntry包括其元数据。不幸的是,看起来默认的 JCEKS 实现只是忽略了属性。

0 投票
1 回答
343 浏览

sql-server - Microsoft Azure SQL 数据库 v12 不支持元素 Person.UidDetails.TableKey。(Microsoft.Data.Tools.Schema.Sql)

在导出数据层应用程序(bacpac 文件)时需要有关错误的帮助。

Microsoft Azure SQL 数据库 v12 不支持元素 Person.UidDetails.TableKey。(Microsoft.Data.Tools.Schema.Sql)

Person.UidDetails.TableKey 只不过是一个 OPEN SYMMETRIC KEY [Person.UidDetails.TableKey]。在此处输入图像描述

错误:

标题:Microsoft SQL Server 管理工作室

无法从指定的数据库中提取包。(Microsoft.SqlServer.Dac)


附加信息:

Microsoft Azure SQL 数据库 v12 不支持元素 Person.UidDetails.TableKey。(Microsoft.Data.Tools.Schema.Sql)

我需要帮助吗?

0 投票
0 回答
362 浏览

node.js - Nodejs,Crypto:使用相同的密码加密多个字符串

我正在尝试使用与代码相同的密码来加密多个字符串

最后一行执行失败,没有显示任何错误。“类型错误:错误:00000000:lib(0):func(0):reason(0)”

在进一步调查中,我知道一旦我们完成了 cipher.final(),我们就不能使用密码了。但是,如果我不早点这样做(在 data1 的加密期间),在“data1 的加密格式”的解密期间,它将失败,因为 cipher.final 返回任何剩余的加密内容,这些内容附加有原始加密字符串。

那么加密多个字符串的最佳方法是什么,或者我应该为所有字符串创建单独的密码?

0 投票
1 回答
67 浏览

security - 在数据库本身加密的同时为数据库的其余部分存储对称密钥

在这里跟进我的问题,我现在需要安全地存储对称密钥。在查看选项后,听起来这可能是一个不错的选择:

设置:

数据库中有一个表有两个字段

其他表格(如其他帖子中所述):

登录/密钥的安全保护:

1)用户登录 - (不相关的)用户/通行证只是存储在数据库中(通行证是一个hmac)

2) 登录后,用户会看到一个屏幕,他们必须在其中输入另一个密码 - 该密码将与公司的所有员工共享(只有 5 名员工,所以很容易记住)。让我们称之为key1。

3) 该密码已执行 hmac,并与数据库中的 php_key_hash 进行比较。

如果它失败了,我可以在这里错误用户。

4)如果匹配,则下拉php_key,使用相同的密码解密,并将其存储在会话变量中。

此时密钥存储在服务器的内存中,并在用户注销时被销毁。让我们称之为key2。

在其他帖子中发生这种正常的字段解密之后

这对我来说似乎真的很安全,因为

1) key2 存储在与 Web 服务器不同的服务器上

2) key2 本身是加密的 - 它从不以纯文本形式存储

3) key1 不位于代码或文件系统或数据库中的任何位置 - 它只在员工的脑海中知道

4)您基本上必须登录该站点两次(一次使用您的登录名,再次使用key1)

5)使用session变量意味着key2只存在内存中,只存在于服务器上,在session结束后销毁

6) 如果我们需要更改密码,我可以随时重新输入 key1 - 例如,如果员工离开或我们认为它已被泄露

潜在问题又名我的问题(最后)

首先,我绝不是安全专家,因此为什么我只希望在安全方面比我更好的人的意见:)

1)我可能将加密的对称密钥(key2)存储在同一个数据库中,用于解密其他字段。我不认为这是一个问题,因为它本身是加密的?

2) 将对称密钥 (key2) 存储在会话变量中 - 人们浏览 RAM 的潜在问题?也许将 key1 存储在会话变量中会更好,然后每次都必须进行双重解密(但可能很慢)?我是不是过于谨慎了?

0 投票
0 回答
37 浏览

sql-server - 如何有条件地检查带有可变数据的 AES_256 算法数据的对称加密

我正在使用 AES_256 算法

这里是匹配大小写的值,但结果为 '0'

使用此代码,我将得到结果。但我有大量数据可以比较

谁能给我一个更好的方法?

0 投票
1 回答
1037 浏览

sql - 如何加密/解密表的某些列中的数据,当插入新记录时,它也应该加密

我知道这样插入新记录

但我想插入一条带有正常插入语句的新记录,该语句应该被加密。前任:

0 投票
1 回答
760 浏览

java - 如果我们用 AES 密钥包装 256 位 AES 密钥,那么包装密钥的大小可以超过 32 个字节?

我有一段代码,我用 AES 密钥包装我的对称密钥(AES):

  1. swkKey:这是用于包装的 AES 密钥。
  2. key:要包装的密钥。

代码:

如果 key 是 256 位而 swkkey 是 256 位,则 WrappedAppKey 的长度是多少。包装的密钥可以超过 32 个字节吗?请注意,在这种情况下,我会收到以下日志:

0 投票
1 回答
856 浏览

c# - 找不到对称密钥“keyFieldProtection”,因为它不存在或您没有权限。

我正在尝试使用具有加密数据的存储过程,我已经成功地用 Python 编写了相同的程序。但是,当我使用 c# 连接到同一个数据库时,它会引发此错误。找不到对称密钥“keyFieldProtection”,因为它不存在或您没有权限。

0 投票
0 回答
605 浏览

swift - 删除并重新创建对称密钥 (iOS) 后打开 chachapoly 密封盒?

我的 iOS 应用程序(我的第一个应用程序)有点障碍,我想加密我发送到服务器的数据。

为此,我生成了一个存储在钥匙串中的对称密钥。

密钥通过以下方式生成:

在这个函数中,密码实际上是一个计算出来的 SHA256,如下所示: SHA256.hash(data: password)它给了我一个摘要,然后我从中提取数据表示来创建我的密钥。

现在,当我加密数据时,我会执行以下操作

这将返回我然后发送到服务器的数据。

为了解密数据,我执行以下操作:

现在我的问题是,如果我注销(这意味着从手机中删除密钥)并重新登录(在我看来这会重新创建之前创建的相同密钥),那么我无法解密我的数据......我有当我尝试打开盒子时出现以下错误:

我相信这是由于我创建密钥的方式,这与之前删除的密钥不同......

我怎样才能解决这个问题 ?

谢谢 !

0 投票
2 回答
481 浏览

.net - 您如何保护您的 JWT 对称安全密钥?

现在在我的生产环境中,我有我的密钥硬编码:

将密钥移动到配置文件是个坏主意,把它放在这里更糟糕。

存储和使用 SymmetricSecurityKey 的最佳方式是什么?

谢谢