出于某些原因,我需要使用256位的块大小而不是使用128位块大小的AES来实现Rijndael de /
compression(原因:数据使用Rijndael在PHP中加密)。
如何更改密码的块大小?
如果我只是使用cipher "RIJNDAEL/CFB/PKCS5Padding"
并尝试使用256位初始化IV,则会出现异常,因为块大小仅为128位。
除了具有128位块大小的Rijndael之外,任何Sun
JCE提供程序都不支持任何其他功能:这是AES算法。要获得具有256位块大小的rijndael,您将不得不走到其他地方。我建议Bouncycastle
Java
库。该RijndaelEngine类有接受位的块大小的构造函数。大多数人都发现,与适当的填充一起使用时,PaddedBufferedBlockCipher类更方便,例如
PaddedBufferedBlockCipher c = new PaddedBufferedBlockCipher(new RijndaelEngine(256), new PKCS7Padding());
问题内容: 更新 我已经对C#代码进行了更改,因此它使用的块大小为256。但是现在,您好世界看起来像这样http://pastebin.com/5sXhMV11,我无法弄清楚应该使用rtrim()获得什么一团糟的最后。 另外,当您说IV应该是随机的时,您的意思是不要再使用一次相同的IV,否则我编码的方式错误吗? 再次感谢! 你好 我正在尝试使用在C#中加密的PHP解密字符串。我似乎无法让PHP使用
我曾在互联网上寻找解决问题的有效方法,但我尝试的一切都不奏效。我在两种语言之间得到了不同的结果。 在PHP中,我有以下代码: 和C#中的以下代码: 我有另一个CalcMd5函数,它接受一个byte[](与上面的函数类似,但没有GetBytes部分)。 需要加密的密钥和字符串在PHP和C#中都是相同的: 键:“24ACD2FCC7B20B8BD33FF45176F03061A09B729487E10
我正在尝试将我的应用程序从128位AES密钥升级为256位AES。然而,当我将第54行从128更改为256时,我会得到以下密钥大小错误。 java.security.无效密钥异常: 非法的密钥大小 我已正确安装了JCE文件,我的应用程序生成较长的密钥这一事实证明了这一点。 我在其他文章中看到过“AES / CBC / PKCS7Padding”加密方法,但这只会让我遇到这个例外:
日安,绅士!我试图加密和解密一个字符串使用aes ctr与256位密钥。下面我贴出了代码。我错过了什么,但我不知道是什么。解密产生的校验文本与明文不同。提前感谢!
我需要解密一些使用以下规格加密的数据(在Android上): 具有128位密钥大小和128位块大小的AES 分组密码模式:CBC-CS1(具有密文窃取的CBC,变体1,如[CBCCS]中所述) 我在网上没有找到太多的信息,我试过的所有AES解密方法都不起作用。 主要问题似乎是CBC-CS1的实施,它是受支持的还是我应该自己实施? 谢谢,戴姆
请在膝盖抽搐之前阅读这个问题(尽管如果真的是,不确定为什么我找不到它,但很棒! 多年来,我们一直在模式下将mcrypt与模块一起使用。我们有很多东西用它加密。 我们必须迁移到的PHP 7.2不再包含mcrypt。 Openssl AES不支持192块大小(或128以外的任何大小)。接下来,我将更改对称加密。 我遇到的问题是遗留数据,如果没有mcrypt,我看不到如何解密它。没有修改遗留数据的选择,