DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: fdsafdsa1234
今日帖子: 9
在线用户: 19
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 jingzu (123456) ★☆☆☆☆ -
盒子活跃会员
2023/1/11 11:42:58
标题:
请问题:CnPack中的CnPackAES 线程安全吗? 浏览:787
加入我的收藏
楼主: 如题,我已使用上的,用在线程,但总不是放心,线程下是否安全?因为运行半天有崩溃闪退现象。不确是否CnPackAES问题,因为原来不用时,运行几天不会有闪退现象的。是PC程序。
----------------------------------------------
永远是DELPHI初学者。
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
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 堆栈 ~
----------------------------------------------
-
作者:
男 letianwuji (大器晚成) ▲▲▲▲▲ -
普通会员
2023/1/11 19:36:09
3楼: 你确定aes能崩溃??是用现成批量解密文件?
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
作者:
男 keymark (嬲) ▲▲▲△△ -
普通会员
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/
作者:
男 letianwuji (大器晚成) ▲▲▲▲▲ -
普通会员
2023/1/11 21:00:06
5楼: 我用CnAES批量解密文件,貌似没异常。
----------------------------------------------
相信自己,若自己都不相信,那还有谁可信。
作者:
男 jingzu (123456) ★☆☆☆☆ -
盒子活跃会员
2023/1/12 20:03:07
6楼: 谢谢各位大师,delphi 11.2 是不是DUnitX.MemoryLeakMonitor.FastMM4?我加上没有反映呢。
----------------------------------------------
永远是DELPHI初学者。
作者:
男 wjbox (寒夜) ★☆☆☆☆ -
普通会员
2024/4/12 0:55:09
7楼: CnAES的AES加解密例子中,padding方式没有PKCS5,我照猫画虎加上PKCS5,结果发现当需加密字符串很短,比如只有5个字符时,则加密后,再解密得出的原字符串后面多几个空格,不知道PKCS5方式是不是有问题?如果需加密字符串很长,就没有这个问题。 这种情况在PKCS7方式下不会出现
----------------------------------------------
-
作者:
男 wjbox (寒夜) ★☆☆☆☆ -
普通会员
2024/4/12 1:30:35
8楼: 跟了一下源码,发现 
procedure BytesRemovePKCS5Padding(var Data: TBytes);
begin
  BytesRemovePKCS7Padding(Data);
end;
BytesRemovePKCS5Padding调用的就是BytesRemovePKCS7Padding,不知道是不是这的问题
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
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/
作者:
男 wjbox (寒夜) ★☆☆☆☆ -
普通会员
2024/4/12 16:42:31
10楼: @cnpack,多谢解答,是否可以理解为AES加密不能用PKCS5方式对齐。我在在线AES加密解密网站上测试,发现PKCS5和PKCS7填充得出的结果是一样的
----------------------------------------------
-
作者:
男 cnpack (CnPack) ★☆☆☆☆ -
普通会员
2024/4/12 17:04:57
11楼: 说明那个网站就是统一用的PKCS7。。。
----------------------------------------------
欢迎使用CnPack IDE Wizards
http://www.cnpack.org/
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行39.0625毫秒 RSS