GCC-6.3.0下DES加密实现的异常崩溃问题排查
C语言实现DES在GCC 6.3.0下运行异常(曾触发段错误)
问题概述
- 基于C语言实现数据加密标准(DES),所有置换操作均通过调用
permute函数完成 - 加密与解密复用
des_crypt函数,解密时反转des_ksa生成的子密钥顺序 - 代码在GCC 6.3.0编译后执行曾触发疑似段错误,错误发生在
f函数的k ^= permute(r, E, 48)语句,表现为无法访问置换表条目;但在其他GCC版本及在线编译器中可正常编译运行 - 已修复三类问题:宏定义缺失括号、swap函数的未定义行为、permute函数逻辑错误,当前原机器可编译运行,但输出结果错误
完整代码
// 此处粘贴完整的DES实现代码
内容的提问来源于stack exchange,提问作者user22288379
相关产品推荐
相关产品推荐

