|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
jingzu (123456) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2023/1/11 11:42:58 |
标题: |
请问题:CnPack中的CnPackAES 线程安全吗? |
浏览:787 |
|
加入我的收藏 |
楼主: |
如题,我已使用上的,用在线程,但总不是放心,线程下是否安全?因为运行半天有崩溃闪退现象。不确是否CnPackAES问题,因为原来不用时,运行几天不会有闪退现象的。是PC程序。
----------------------------------------------
永远是DELPHI初学者。 |
作者: |
|
2023/1/11 17:03:31 |
1楼: |
线程安全。CnAES以及其他的对称加密库均没有用全局变量,没有线程冲突问题。
----------------------------------------------
欢迎使用CnPack IDE Wizards http://www.cnpack.org/
|
作者: |
lsuper (lsuper) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2023/1/11 18:09:39 |
2楼: |
上 FastMM4 排查内存泄露问题;Release 带上 EurekaLog 抓崩溃 elf 堆栈 ~
----------------------------------------------
-
|
作者: |
|
2023/1/11 19:36:09 |
3楼: |
你确定aes能崩溃??是用现成批量解密文件?
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
|
作者: |
|
2023/1/11 19:47:09 |
4楼: |
FastMM4 可以帮你查 对已释放内存的访问 bug。 内存泄漏。
所以到底啥问题呢。
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2023/1/11 21:00:06 |
5楼: |
我用CnAES批量解密文件,貌似没异常。
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
|
作者: |
jingzu (123456) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2023/1/12 20:03:07 |
6楼: |
谢谢各位大师,delphi 11.2 是不是DUnitX.MemoryLeakMonitor.FastMM4?我加上没有反映呢。
----------------------------------------------
永远是DELPHI初学者。
|
作者: |
|
2024/4/12 0:55:09 |
7楼: |
CnAES的AES加解密例子中,padding方式没有PKCS5,我照猫画虎加上PKCS5,结果发现当需加密字符串很短,比如只有5个字符时,则加密后,再解密得出的原字符串后面多几个空格,不知道PKCS5方式是不是有问题?如果需加密字符串很长,就没有这个问题。 这种情况在PKCS7方式下不会出现
----------------------------------------------
-
|
作者: |
|
2024/4/12 1:30:35 |
8楼: |
跟了一下源码,发现 procedure BytesRemovePKCS5Padding(var Data: TBytes); begin BytesRemovePKCS7Padding(Data); end; BytesRemovePKCS5Padding调用的就是BytesRemovePKCS7Padding,不知道是不是这的问题
----------------------------------------------
-
|
作者: |
|
2024/4/12 9:29:53 |
9楼: |
PKCS5Padding就是块大小为8字节的PKCS7Padding。 AES默认的PKCS7Padding为16字节,和AES自身分组块的尺寸一致。
AES单纯分组加密的密文会变成16字节整数倍,加密前的PKCS7Padding的16字节对齐能够保证加密前16字节整数块,加密后也是同样长度的16字节整数块,不至于出现增多或丢失。 你用PKCS5对齐明文,被加密的内容就变成了8字节的整数倍,不一定是16字节整数倍,AES分组加密后就可能被补足成16字节整数倍从而多出内容来,解密自然也就多出内容了。
一句话,对齐的块长度,得等于分组加密的块长度,否则会多或丢信息。 AES是16字节,不能用8字节的PKCS5对齐。
----------------------------------------------
欢迎使用CnPack IDE Wizards http://www.cnpack.org/
|
作者: |
|
2024/4/12 16:42:31 |
10楼: |
@cnpack,多谢解答,是否可以理解为AES加密不能用PKCS5方式对齐。我在在线AES加密解密网站上测试,发现PKCS5和PKCS7填充得出的结果是一样的
----------------------------------------------
-
|
作者: |
|
2024/4/12 17:04:57 |
11楼: |
说明那个网站就是统一用的PKCS7。。。
----------------------------------------------
欢迎使用CnPack IDE Wizards http://www.cnpack.org/
|
|