1
yuzo555 2023-05-25 12:06:20 +08:00
这种 PHP 直接用自带的 openssl 库啊
|
3
CodeCodeStudy 2023-05-25 15:06:25 +08:00
看不到图
|
4
brader OP @CodeCodeStudy 不可能吧,你都能翻到这个网站,imgur.com 上的图片应该看得到呀
|
5
wudicgi 2023-05-25 15:14:13 +08:00
if ($length % $this->block_size == 0) {
return $text; } 看着不是 PKCS7, PKCS7 任何时候都要加 padding 的 如果 block_size 是 8 bytes, 那么长度恰好是 8 的整倍数时,要填充 8 个 0x08 |
6
wudicgi 2023-05-25 15:15:01 +08:00
呃,我漏看了 if ($this->padding) { 了
那看着是 PKCS7 |
7
Great233 2023-05-25 15:15:05 +08:00
PKCS#5 填充不能用于 AES 加密,看说是 Java 加密库历史遗留问题,所以在使用 AES 加密的时候写的是 PKCS5Padding ,实际是 PKCS7Padding
> https://crypto.stackexchange.com/a/9044 |
8
brader OP @Great233 按我找到的相关 AES 资料,我的认知也是 PKCS#5 填充不能在 AES 加密的 CBC 模式使用,因为 AES 的 CBC 模式,最短的块长度是 16 ,而 PKCS#5 适用于块长度为 8 。关于 java 方面等问题,我就不是很清楚了,毕竟不是做 java 开发
|
9
wudicgi 2023-05-25 15:18:31 +08:00
PKCS5 和 PCKS7 padding 的区别是它只能用于 block size 为 8 bytes 的情况
PKCS7 的 block size 可以到 255 bytes |
10
brader OP @wudicgi 嗯,所以上面代码应该就是使用的 PKCS7 了,因为是动态填充的,那 java 示例应该是有问题的,除非像楼上有个同学说的,java 这样写是历史遗留问题
|
11
CodeCodeStudy 2023-05-25 16:08:25 +08:00
@brader #4 http 错误为 429 Too Many Requests
|
12
brader OP @CodeCodeStudy 那就不知道为啥你被针对了,大家都看得到,而且这个图床,V2 最多人用的了
|
13
iyaozhen 2023-05-25 16:23:20 +08:00
|
15
YepTen 2023-05-25 17:34:22 +08:00
Java Security Standard Algorithm Names
中对加密的填充模式只有以下几种: NoPadding ISO10126Padding OAEPPadding, OAEPWith<digest>And<mgf>Padding PKCS1Padding PKCS5Padding SSL3Padding |
16
YepTen 2023-05-25 17:35:06 +08:00
|