当前位置: 首页 > news >正文

网站设计步骤济南建设网中标公告

网站设计步骤,济南建设网中标公告,WordPress导入hexo,全国有名的网站建设公司加解密 | AES加、解密学习 你的代码实现了一个简单的AES#xff08;高级加密标准#xff09;加密和解密的测试程序。以下是对代码的分析和一些改进建议#xff1a; 代码功能 初始化数据和密钥#xff1a; 定义了一个16字节的输入数据 input_data。定义了一个16字节的AES…加解密 | AES加、解密学习 你的代码实现了一个简单的AES高级加密标准加密和解密的测试程序。以下是对代码的分析和一些改进建议 代码功能 初始化数据和密钥 定义了一个16字节的输入数据 input_data。定义了一个16字节的AES密钥 key。初始化了加密数据和解密数据的缓冲区。 密钥扩展 使用 aes_expand_key 函数将原始密钥扩展为扩展密钥。 加密和解密 使用 aes_encrypt 函数对输入数据进行加密。使用 aes_decrypt 函数对加密后的数据进行解密。 打印信息 打印了加密前后的数据、密钥等信息。 代码中的问题和改进建议 使用字符串作为密钥 在C语言中字符串以空字符 \0 结尾。因此1234567890abcdef 实际上是一个17字节的字符串包括空字符。这可能导致密钥长度不正确。改进建议使用字节数组定义密钥确保密钥长度为16字节。 加密和解密函数的参数类型 aes_encrypt 和 aes_decrypt 函数的参数类型需要明确。确保它们接受的是字节数组并且长度正确。如果这些函数的实现需要16字节对齐的输入需要确保输入数据的长度为16的倍数。 解密硬编码的十六进制字符串 在代码中你尝试直接将十六进制字符串 8df9deff39e5877acf18f8056538864c 传递给 aes_decrypt 函数。这在C语言中是不正确的因为字符串是字符数组而不是字节数组。改进建议将十六进制字符串转换为字节数组后再进行解密。 打印加密后的数据 加密后的数据是二进制数据可能包含不可打印字符。因此使用十六进制格式打印是正确的但需要确保解密后的数据也是正确处理的。 改进后的代码 以下是改进后的代码示例 c复制 #include stdio.h #include string.h #include stdint.h#define AES_KEY_LENGTH 16 #define AES_EXPAND_KEY_LENGTH 176 // AES-128 扩展密钥长度typedef uint8_t u8;// 假设的 AES 加密和解密函数 void aes_expand_key(const u8* key, u8* expanded_key); void aes_encrypt(const u8* input, const u8* expanded_key, u8* output); void aes_decrypt(const u8* input, const u8* expanded_key, u8* output);int tester_aes() {// 输入数据必须是 16 字节的倍数u8 input_data[16] Hello, AES!;u8 encrypted_data[16];u8 decrypted_data[16];// AES 密钥 (128 位)u8 key[AES_KEY_LENGTH] {0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef, 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10};u8 expanded_key[AES_EXPAND_KEY_LENGTH];int i 0;aes_expand_key(key, expanded_key);memset(encrypted_data, 0, sizeof(encrypted_data));memset(decrypted_data, 0, sizeof(decrypted_data));printf(sizeof(unsigned char): %ld\n, sizeof(unsigned char));printf(sizeof(unsigned int) : %ld\n, sizeof(unsigned int));printf(密钥);for (i 0; i AES_KEY_LENGTH; i) {printf(%02x, key[i]);}printf(\n);printf(原始数据: );for (i 0; i 16; i) {printf(%02x, input_data[i]);}printf(\n);// 加密aes_encrypt(input_data, expanded_key, encrypted_data);printf(加密后的数据: );for (i 0; i 16; i) {printf(%02x, encrypted_data[i]);}printf(\n);// 解密aes_decrypt(encrypted_data, expanded_key, decrypted_data);printf(解密后的数据: );for (i 0; i 16; i) {printf(%02x, decrypted_data[i]);}printf(\n);// 解密硬编码的十六进制字符串u8 hex_data[16] {0x8d, 0xf9, 0xde, 0xff, 0x39, 0xe5, 0x87, 0x7a, 0xcf, 0x18, 0xf8, 0x05, 0x65, 0x38, 0x86, 0x4c};aes_decrypt(hex_data, expanded_key, decrypted_data);printf(解密后的数据1: );for (i 0; i 16; i) {printf(%02x, decrypted_data[i]);}printf(\n);return 0; }改进点说明 密钥定义 使用字节数组定义密钥确保密钥长度为16字节。 十六进制字符串转换 将硬编码的十六进制字符串转换为字节数组避免直接传递字符串。 打印数据 使用十六进制格式打印所有数据确保输出一致且易于理解。 注意事项 确保 aes_expand_key、aes_encrypt 和 aes_decrypt 函数的实现是正确的并且它们的参数类型和长度符合要求。如果需要处理更长的输入数据需要分块处理因为AES加密要求输入数据长度为16字节的倍数。在实际应用中密钥和数据应通过安全的方式传递和存储避免硬编码在代码中。
http://www.w-s-a.com/news/160426/

相关文章:

  • 石佛营网站建设wordpress关健词
  • 您的网站空间即将过期建站 discuz
  • 上海简站商贸有限公司福州哪家专业网站设计制作最好
  • 博客网站开发流程苏州专业做网站的公司哪家好
  • 四川手机网站建设西安 网站 高端 公司
  • 织梦大气绿色大气农业能源化工机械产品企业网站源码模版建筑工程知识零基础
  • 广州番禺网站公司v2017网站开发
  • 微信公众号怎么做微网站wordpress和dz
  • 西部数码网站管理助手 301福州搜索优化实力
  • 响应式网站介绍页面模板功能找不到
  • 公司网站如何seo自己做资讯网站
  • 天津网站建设软件开发招聘企业信用信息查询公示系统上海
  • 网站备案中做正品的网站
  • 网站建设0基础学起青海企业网站开发定制
  • 网站定制项目上海快速建站
  • 大型视频网站建设方案东莞企业网站建设开发
  • 西安php网站制作可以用AI做网站上的图吗
  • 网站开发工程师和前端企业网络推广公司
  • 泉州开发网站的公司有哪些电脑网页翻译
  • 河北省建设机械会网站首页刚做的网站怎么收录
  • 什么网站专门做自由行的framework7做网站
  • 网页设计与网站建设书籍包头住房与城乡建设局网站
  • 重庆网站建设平台免费猎头公司收费收费标准和方式
  • 形象设计公司网站建设方案书打开一个不良网站提示创建成功
  • 网站手机页面如何做网站关键字 优帮云
  • 免费的黄冈网站有哪些下载软件系统软件主要包括网页制作软件
  • 企业微站系统重庆高端网站建设价格
  • 有没有做衣服的网站吗网站自适应开发
  • 青海省制作网站专业专业定制网吧桌椅
  • 网站开发的项目17岁高清免费观看完整版