问题标签 [rijndael]

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 回答
5155 浏览

ruby-on-rails - 如何在 ruby​​ 中解码 Rijndael(在 VB.net 中编码)

我正在使用 Rinjael 在 VB.NET 中进行编码,并且需要在 Ruby 中进行解码。我的 VB.NET 加密类如下所示:

这工作正常,我可以使用 AES/CBC/PKCS5Padding 在 java 中解密。现在,我的密码和 iv 有 16 个字符长(16*16bit = 256)。当我尝试在 Ruby 中解密时,它抱怨我的密码太短了……我假设它使用的是 8 位字符。我在 ruby​​ 中使用这个类进行解密:

现在。通过尝试使用 Crypt.decrypt(data,key,iv, "AES-CBC-256") 进行解密,我确信必须对我的 data,key,iv 进行初步的字符串/字节转换才能正常工作。

如何使用 key = "passwordpassword" 和 iv="1234567890123456" 调用 Crypt.decrypt?我需要对我的数据进行 base64 解码吗?

这是我的解密调用,它似乎不起作用(尝试用零填充):

0 投票
1 回答
1859 浏览

c# - 无法使用 C# 解密使用 PHP (Rijdael-128) 加密的数据

我使用以下代码使用 PHP 解密数据:

然后将 $iv 和 $encrypted 保存到文件并在 C# 示例应用程序中读取:

这里的输出与 PHP 的输出完全相同,所以我可以保证两者之间没有编码错误。

即使输入数据完全相同,解密的结果也会在每个程序开始时有所不同:

第一次运行:
DMF1ucDxtqgxw5niaXcmYQ== <
-Key GoCeRkrL/EMKNH/BYeLsqQ== <-IV
UBE3DkgbJgj1K/TISugLxA== < -加密
OlOB99yiCYRDoLx+0xxZxQ== <-“解密”

第二次运行:
DMF1ucDxtqgxw5niaXcmYQ== <
-Key GoCeRkrL/EMKNH/BYeLsqQ== <-IV
UBE3DkgbJgj1K/TISugLxA== <-加密
w5fcY5Fbb9KRgoHfhqAztA== <-“解密”

密钥,IV,加密数据相同,但解密日期仍然不同并且总是错误的。缓冲区应包含“1234”或“1234”加上 12 个尾随零。

我不明白为什么结果会有所不同以及什么不起作用,但我已经盯着这段该死的代码几个小时了,可能错过了明显的错误......

像这样反转 CryptoStream 会产生同样错误的结果:

帮助?谢谢!亚历山大

0 投票
2 回答
941 浏览

encryption - 没有原始大小,SlowAES 无法正确解密

第一次在这里发海报。这里很棒的社区。经过无数小时的搜索,我无法弄清楚我面临的这个问题的答案。

首先,在加密/解密、密码学等方面,我不是大师。我只想在这个领域走这么远,而不会迷路。我编码的主要框架是 .NET,我被要求为 C# 创建一个 AES CBC 实现,它可以在 JavaScript 和 ActionScript 3 上运行。我在这两个方面都取得了成功,但在使用 JavaScript 时,我遇到了一个问题。

我决定使用 SlowAES AES 实现,因为它似乎是最流行的最好的互操作。

有关我的问题,请参阅以下链接...

问题 #9:http ://code.google.com/p/slowaes/issues/detail?id=9

基本上我对 SlowAES 的问题是,在不知道原始未加密文本的长度的情况下,我无法正确解密某些内容。这违背了目的对吗?我应该能够在不需要知道原始字符串的情况下解密加密字符串。

如果我遗漏了什么,如果指出正确的方向,我将不胜感激。谢天谢地,我没事,因为我放在一起的 .NET AES 实现可以解密 SlowAES 加密的内容,与 ActionScript 3 的实现相同。

在这一点上,我只想让 SlowAES 正确解密。

更新

在 Remus 的帮助下,我确定 SlowAES 正在使用 PKCS5/7 填充方案,但没有正确删除它。现在我的问题似乎与 C#、理解字节数组等有关。

我可以看到解密文本中的最后一个字符是“5”,前面有一个“0”。这种模式持续了 5 次。现在根据 Remus 下面所说的,我应该用这个数字减去解密的字符串长度。但是模式是“05”,这是否意味着我将 5 加倍为 10,然后从解密的字符串长度中减去 10?

另外,获得我需要减去的数字的最简单方法是什么?我正在使用以下内容来获取当前的号码:

Byte[] decryptedBytes = System.Text.Encoding.ASCII.GetBytes(decrypted);
Byte padLengthByte = decryptedBytes[decryptedBytes.Length - 1];
Char padLengthChar = Convert.ToChar(padLengthByte);
String padLengthString = padLengthChar.ToString();
Int32 padLength = Int32.Parse(padLengthString);

我确定我做错了。再次感谢任何帮助。

我的另一个问题是,您如何知道是否首先应用了填充以将其删除?如果'\07'代表7个字节的填充,如果最后一个字节是'\01\'呢?

0 投票
3 回答
690 浏览

c# - 我需要加密我的 http 表单元素的名称

我有一个包含某些元素、输入框、复选框等的表单。我需要加密这些输入框和复选框的名称。我目前正在通过 c# 使用 Rijndael 加密/解密方法,但这会使加密名称太长而无法在帖子中传递。有没有更好的方法来获得像样的加密名称?我的目的是在帖子发生之前对名称进行加密,因此如果有人查看名称背后的代码已经加密。

0 投票
1 回答
673 浏览

sql-server-2000 - SQL Server 2000 的 AES/Rijndael 实现?

您知道我可以使用任何函数实现来解密 SQL Server 2000 中由 AES/Rijndael 加密的数据吗?

0 投票
3 回答
770 浏览

c# - 加密数据时如何保留回车?

我有以下设置,一个以其中可能有回车的数据命名的 textarea 和另一个style='display:none'为了使其隐藏的 textarea,如下所示:

用户在第一个文本区域输入数据,当该文本区域失去焦点时,'encryptMyData()' javascript 函数正在调用 ajax 调用以获取用户在第一个文本字段中输入的任何内容,使用 rijndael 对其进行加密,并将其粘贴到 encryptedText textarea 以便稍后将其存储在数据库中。

现在我需要做的是,找到一种方法将加密前的回车转换为标签,[cr]这样当我检索数据时,所有格式都会保留。知道我该怎么做吗?我正在使用 asp.net 和 c# 来执行加密。

0 投票
3 回答
3194 浏览

c# - 从动作脚本到 C# 的 Rijndael 加密

我正在尝试在动作脚本和 C# 之间共享加密

我的任务是在 C# 中解密以下消息

f1ca22a365ba54c005c3eb599d84b19c354d26dcf475ab4be775b991ac97884791017b12471000def05bb77bfe9c3a97d44ef78c9449f12daf6e25b61ab1a281

它使用 Rijndael 加密,ECB 模式(电子密码本),密钥:Pas5pr@se,128 位密钥大小和块大小。

我遇到的问题是我似乎无法做到这一点,有人帮我解决这个问题吗?

0 投票
3 回答
3835 浏览

c# - rijndael 加密 - 只有部分字符串被解密

只有部分字符串被解密,我认为这与我的编码有关。

这是发生的事情:

结果是这样的:棕狐juϼ㴘裴혽Ή⪻ㆉr th≸ g⟤een frog

0 投票
1 回答
399 浏览

c# - C# 公钥验证 Perl 私钥并用作 AES 密钥?可能和/或可行?

我在考虑是否有可能和/或可行的混淆和安全性如下:

  • 客户端启动与服务器的会话(这意味着发送并接受了有效的登录名和密码)
  • 服务器加密一个随机密码,它是私钥,然后将使用 Rijndael 的方法将其用于数据加密,并将两者发送回客户端(密码是加密的随机密码和 Rijndael 的加密数据,这是我们想要的客户上班)
  • 客户端将收到两者,验证密码以查看它是否使用我们的密钥对加密,如果是这样,它将用于解密数据。

据我所知,Rijndael 对密码大小有一些限制,所以这是否可能(考虑到加密随机密码的输出)?

是否有其他方法与我在这里的想法或试图描述的内容相近?

这还值得吗?

我想要这样的东西的原因主要是为了让任何试图重现我们的服务器与客户端通信的人都更难,除了我们使用 Smart Assembly。我希望你们专注于上述问题,忘记打包我的代码等。如果可能的话,将其视为客户端/服务器通信安全问题。

最好的祝福。

0 投票
4 回答
2601 浏览

c# - Rijndael 的存储 IV 和密钥

我需要将用户名和密码存储在 app.config 中。我想使用 Rijndael 算法加密这些值。我在哪里存储用于解密 un 和 pw 的密钥和 IV?我需要将应用程序部署到具有不同用户的不同服务器上。