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

ruby - 使用相同参数加密文本时,OpenSSL 命令行和 Ruby OpenSSL 库有所不同

注意:使用 OpenSSL 对文本进行对称加密。

我制作了一个 Ruby 脚本来测试 OpenSSL,但我发现我得到了不同的结果。密钥、iv 和密码是相同的,所以我希望结果是相同的。但他们不是。这是我的脚本:

结果是:

只是一个奇怪的结果。知道是什么导致数据不同吗?

0 投票
2 回答
3197 浏览

c# - Java 加密和 C# 解密问题

我有一个 C# 中的 DLL,用于加密和解密字符串文本(一些基本的东西),但现在我需要在 Java 中实现相同的加密方法,以便某些应用程序可以加密数据并将其发送到库。

我不能修改 C# 代码,因为它已经在生产中,但 Java 没有,所以请,任何建议都必须在 Java 端完成。

基本上我正在尝试在 Java 中实现相同的 C# 加密方法。这是我的 C# 代码:

注意:密码、盐等值显然只是参考。

这是我的 java 代码,它加密数据,但与 C# 加密代码不同,所以当我尝试使用 C# 库对其进行解密时,它会抛出异常:“要解密的数据长度无效”

编辑 1:正如 Jon Skeet 所建议的,我在 Java 代码中修复了最终字节数组转换为 String 的问题。

0 投票
2 回答
1852 浏览

java - .NET 和 Java 之间的对称加密

我正在使用 3rd 方平台来创建登录页面,这是我使用这个特定平台的业务需求。

在他们的页面上,当调用我网站上的资源时,我可以加密数据并通过请求参数将其发送到我的服务器。这是通过 AES 对称加密完成的。

我需要指定密码、salt(必须是十六进制值)和初始化向量(但必须是 16 个字符)。

他们的后端是一个 .NET 平台。我知道这一点,因为如果我指定的 IV 长于预期的基础异常是:

System.Security.Cryptography.CryptographicException: Specified initialization vector (IV) does not match the block size for this algorithm. Source: mscorlib

例如,在他们的最后,我指定:

EncryptSymmetric("Hello World","AES","P4ssw0rD","00010203040506070809", "000102030405060708090A0B0C0D0E0F")

其中输入分别为:纯文本、算法、密码短语、盐和 IV。

我得到了价值:eg/t9NIMnxmh412jTGCCeQ==

如果我尝试使用 JCE 或 BouncyCastle 提供程序最终解密它(相同的算法、密码短语、盐和 IV,具有 1000 次迭代):2rrRdHwpKGRenw8HKG1dsA==这是完全不同的。

我在网上查看了许多关于如何解密 AES 的不同 Java 示例。一个这样的演示如下:http: //blogs.msdn.com/b/dotnetinterop/archive/2005/01/24/java-and-net-aes-crypto-interop.aspx

如何解密使用密码短语、salt 和 IV(由 Java 平台上的 .NET 框架生成)的 AES 对称加密?

如果我可以在 java 端生成相同的签名并进行比较(如果事实证明这里真正生成的是哈希),我不一定需要能够解密加密字符串的内容。

我在生产中使用 JDK 1.5,所以我需要使用 1.5 来执行此操作。

作为旁注,Java 中的许多示例需要在 java 端指定重复计数,但在 .NET 端不需要。是否有我需要在与默认 .NET 输出匹配的 java 端指定的标准迭代次数。

0 投票
1 回答
8829 浏览

python - 使用 CBC 模式使用 PyCrypto 进行 AES 256 加密 - 有任何弱点吗?

我有以下 python 脚本来使用 AES 256 加密/解密数据,您能否告诉我代码中是否有任何内容可能使加密变弱,或者是否有任何我没有考虑到使用 CBC 进行 AES 256 加密的内容模式?我已经测试了脚本,它工作正常,它正在加密和解密数据,但只是想要第二个意见。谢谢。

0 投票
2 回答
1356 浏览

c# - 从 SQL Server 2008 R2 解密数据

我需要一些帮助来将此过程(见下文)转换为 Entity Framework 4.0。有没有人对如何移植这个有任何建议。目标项目包括;Silverlight 4、WCF RIA 服务、EF 4.0、SQL Server 2008 R2。

我唯一的要求是它需要放在托管代码中,而不是存储过程中。

请让我知道我应该如何设置它,谢谢!

0 投票
1 回答
6385 浏览

java - 打包和解包加密密钥失败 (javax.crypto)

我有以下测试代码来加密和解密字符串。如果我在 test() 中省略了我的密钥的包装和解包代码,它工作正常,但是当我尝试包装我的密钥,然后再次解包并将其用于解密时,它会失败并且我没有得到“测试”作为结果解密字符串返回,但改为“�J��”。

有人看到我在包装和展开时出现的错误吗?谢谢。

以及上面代码中调用的两个辅助方法:

0 投票
1 回答
1028 浏览

c# - .NET 中 AES (RijndaelManaged) 的性能问题

我打算用RijndaelManaged加密大数据(大约 3-5 MB) 。这样做有任何性能问题\建议吗?

谢谢

0 投票
1 回答
4487 浏览

c# - AES 及其密码模式

我正在尝试使用 AES 进行加密/解密,然后我尝试了 CBC 和 ECB 模式,我从这三个模式中得到了相同的加密输出!这是怎么回事?
这可能没有错,但我只是不知道会发生什么。如果它们都产生相同的密码,那么拥有模式有什么意义?是时间复杂度还是性能复杂度?

你能解释一下 AES 和它的密码模式之间的区别吗?什么是默认密码模式?或者如果你能给我任何参考因为 MSDN 不够清楚

谢谢你

0 投票
1 回答
512 浏览

ssl - 套接字通信的对称密钥加密而不是 ssl 握手可以提高连接速度吗?

我需要在服务器和 iOS 客户端之间实现 tcp 套接字通信。我正在考虑使用对称密钥加密来保护通过通道发送的数据。我将在我认为应该安全的应用程序中存储对称密钥。(不会有任何钥匙握手)

但是,我不确定通过 ssl 套接字进行对称密钥加密是否会显着提高连接速度?

我的要求是用户启动应用程序时应尽快建立连接。谁能指出我正确的方向?

0 投票
1 回答
6361 浏览

c# - 输入数据不是一个完整的块

在此处输入图像描述在此处输入图像描述场景:一个对称密钥,每个用户都有自己的 IV,文档存储在 NVARCHAR(MAX) 字段中。当我尝试解密文件时,我得到:
输入数据不是一个完整的块。

提前致谢。

存储文档