问题标签 [encryption-symmetric]

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

performance - pki 与对称加密的性能差异是什么?

我们希望对我们的项目进行一些严格的安全要求,并且我们需要进行大量高性能的加密。

我认为我知道 PKI 比对称加密要慢得多且复杂得多,但我找不到支持我感觉的数字。

0 投票
4 回答
46337 浏览

security - Rijndael 和 AES 之间的差异

我正在研究加密算法 - 有人可以快速了解 Rijndael 和 AES 之间的区别吗?

0 投票
3 回答
3186 浏览

ssl - 对称加密密钥与非对称密钥 - ssl

我正在开发一个使用 ssl (openssl) 在客户端和服务器之间建立安全通信通道的客户端服务器应用程序。我相信我现在有两种选择可以在客户端和服务器之间进行安全数据传输。一种选择是继续在客户端和服务器之间建立的安全 ssl 通道上进行数据传输,即使由于使用非对称密钥,加密/解密过程会很慢。另一种选择是在 ssl 通道上传输对称密钥,并在对称密钥交付给客户端后关闭 ssl 通道。此后的通信将使用对称密钥在常规 TCP 通道上进行,我相信这将比使用非对称密钥快得多。这种方法有什么缺点吗?对称密钥方法显而易见的一件事是密钥管理过程,我正在考虑通过根本不将密钥存储在客户端上来处理它。对称密钥将在启动时通过 SSL 通道传递给客户端。密钥根本不会存储在客户端中。有什么想法吗?

0 投票
1 回答
5681 浏览

cryptography - 是否应该为此任务使用加密消息语法 (CMS)?

我的任务是在桌面应用程序和移动设备之间传输小的二进制消息(1 或 2 kb 长)。消息应该非对称加密(例如 RSA)。据我所知,应该使用混合密码系统来完成此类任务:

  1. 生成随机对称密钥
  2. 使用对称密钥加密纯文本(例如使用 AES)
  3. 用公钥加密对称密钥
  4. 传输密文和加密的对称密钥

我不想发明一种自己的格式来存储密文和加密的对称密钥。所以我偶然发现了 CMS 标准(加密消息语法)。乍一看,它看起来完全符合我的需要。如果我正确理解标准,它会嵌入密文和加密的对称密钥以及有关所用算法的信息。

谁能说是否应该使用 CMS 标准来完成概述的任务?OpenSSL 的 CMS 支持是否足以满足我的需求?

干杯,基督徒

0 投票
3 回答
1657 浏览

java - Derby / JavaDB _really_ 可以用三重 DES 而不是(普通)DES 加密吗?

似乎将 Triple-DES(>128 位)与普通 DES(64 位)混淆了。我正在尝试使用 Java 1.5 使用 Triple DES(或 DESede)加密 Derby 数据库

我偶然发现这个讨论论坛消息关于 JDK 1.5 的问题,因此检查以确保它确实使用的是 DESede 而不是普通的 DES。当我使用三重 DES(168 位)URL 创建数据库时

我仍然能够打开它并使用(纯)DES(64 位)URL 访问它

这不是我期望的行为!!!我应该无法使用错误的加密算法打开它。我怎样才能确保它真的用正确的(> 128 位)算法对其进行加密?

Derby 似乎对JCECipherProvider.java中提到的 Java 1.5 使用了正确的函数。我对代码的阅读表明,Derby 处理三重 DES 与普通 DES 不同……我真的可以相信它使用的是强加密吗?

0 投票
4 回答
433 浏览

security - 防止对服务器的 MITM 攻击

两个客户端 Alice 和 Bob 使用服务器登录并通过服务器交换消息。登录时,他们都发送他们的公钥以存储在服务器上。当 Alice 想与 Bob 通话时,她用 Bob 的公钥加密一个对称密钥,并通过服务器将其发送给 Bob。

我如何确保服务器不会制作自己的公钥对并将其发送给 Alice 而不是 Bob 的公钥。这样,服务器将首先解密 Alice 发送的内容,然后使用 Bob 的真实公钥再次对其进行加密。

谢谢

0 投票
3 回答
28720 浏览

c# - 帮助我进行 XOR 加密

我写了这段代码C#来用一个密钥加密一个字符串:

问题是,当我想使用以下代码解密加密文本时,总是会出错:

有什么线索吗?

0 投票
2 回答
4752 浏览

c# - 使用 DPAPI 时安全地存储可选熵

所以我正在尝试使用 DPAPI 存储对称密钥。一切都很好,但是熵怎么办?这里回答的问题确实没有提供足够的洞察力。这似乎是一个滑坡——我可以使用机器商店来存储熵,但是是什么阻止了有人这样做呢?注意:我使用用户范围存储当前密钥。

所以我的问题是 - 使用 DPAPI 存储熵的最佳方法是什么?

0 投票
3 回答
984 浏览

silverlight - Silverlight 中的 Diffie-Hellman

我正在尝试设计一种安全方案,用于加密 silverlight 客户端和我创建的 php web 服务之间的应用程序级数据。由于我正在处理一个公共网站,我从服务中提取的信息是公开的,但我提交给网络服务的信息是不公开的。网站还有一个用于管理的后端,因此从 web 服务推送和拉取到 silverlight 管理后端的所有应用程序数据自然也必须加密。

Silverlight 不支持适用于公共网站的非对称加密。对称加密只能在后端起作用,因为用户不会登录公共网站,因此无法导出基于密码的密钥。仍然对称加密会很棒,但我无法将私钥安全地保存在 Silverlight 客户端中。因为它要么必须被硬编码,要么必须从某种配置文件中读取。这些都不被认为是安全的。所以... B计划。

我最后的选择是实现 Diffie-Hellman 算法,该算法通过密钥协议支持对称加密。然而,Diffie-Hellman 容易受到中间人攻击。换句话说,不能保证任何一方都可以确定彼此的身份,从而使通信在接收方不知情的情况下被截获和更改成为可能。因此建议使用私有共享密钥对密钥协商握手进行加密,以便确认任何一方的身份。

这让我回到了导致我需要使用 Diffie-Hellman 的最初问题,如何在 silverlight 客户端中使用私钥而不在代码或 xml 文件中对其进行硬编码。

我对这个完全不爱了……有什么答案吗?

编辑:

请记住,这是关于我自己推出的自定义 PHP Web 服务。

我找到了一个可以在 Silverlight 中使用的 RSA 实现。使用它来加密 Silverlight 客户端和 PHP Web 服务之间的 DiffieHellman 密钥协议的握手似乎很安全,随后还使用它来加密商定的对称密钥(它本身是从密钥的结果生成的)通过散列进行交换)。

在此之后,我几乎可以保证所有进入Web 服务的通信都没有被拦截、修改然后重新传输 (MITM)。但是我相信它仍然是可能的;从技术上讲,攻击者冒充 Silverlight 客户端并向 Web 服务发送消息(假设他们发现了 url)。

由于攻击者不知道我的自定义 Web 服务的“秘密 api”,因此提供了未经授权访问的安全性,因此他们无法与之通信。

打破这种情况的唯一方法是使用攻击者可能怀疑有效的任何字符串来暴力破解 Web 服务,以尝试从 Web 服务获取响应。我认为您不能蛮力使用可变长度的字符串。听起来不切实际。

有人看到这种方法有问题吗?

0 投票
1 回答
354 浏览

encryption - 在 CryptoAPI 中导出密钥时出现 BAD_UID 错误

我正在为 Microsoft CryptoAPI 编写一个测试应用程序。我想使用第二方的公钥导出一方的密钥,然后将该密钥导入为第二方的密钥(这为通信设置了共享密钥)。这是我的代码:

这给出了错误:

通过调用以下命令为 encryptT 和 decryptT(发送者、接收者)生成公钥对:

知道什么可能导致错误吗?

谢谢,