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

公司淘宝网站怎么建设的更加好广州市区号

公司淘宝网站怎么建设的更加好,广州市区号,简述seo和sem的区别,有什么好的推广平台3DES加密算法介绍 3DES数据加密算法是一种可逆的对称加密算法#xff0c;也称三重数据加密算法。3DES块加密算法的设计用来提供一种相对简单的方法#xff0c;即通过增加DES的密钥长度来避免类似的攻击#xff0c;而不是设计一种全新的密码算法#xff0c;目前3DES作为DES…3DES加密算法介绍 3DES数据加密算法是一种可逆的对称加密算法也称三重数据加密算法。3DES块加密算法的设计用来提供一种相对简单的方法即通过增加DES的密钥长度来避免类似的攻击而不是设计一种全新的密码算法目前3DES作为DES的过渡算法已经逐渐被更安全的AES代替。 DES的秘钥长度是8字节而3DES的秘钥长度是24字节。3DES 是为了增加DES 的强度将DES 重复计算3次所得到的一种密码算法。但3DES 并不是进行三次DES 加密加密-加密-加密而是加密-解密-加密的过程。这样做的目的是为了3DES 能够兼容普通的DES。 对于3DES算法秘钥来说24个字节被分为三组每组8个字节分别用于三次DES计算的秘钥所以当DES 中所有的密钥都是相同时3DES 也就等同于普通的DES了。这就让3DES 具备了向下的兼容性。 加密模式 ECB模式Electronic CodeBook mode电子密码本模式 ECB 电子密码本模式是最简单的块密码加密模式,加密前根据数据块大小分成若干块之后将每块使用相同的密钥单独通过块加密器加密。这种加密模式的优点就是简单,不需要初始化向量IV每个数据块独立进行加/解密利于并行计算加/解密效率很高。但这种模式中所有数据都采用相同密钥进行加/解密也没有经过任何逻辑运算相同明文得到相同的密文所以可能导致“选择明文攻击”的发生。 CBC模式Cipher Block Chaining mode密码分组链模式 CBC 密码分组链接模式是先将明文切分成若干小块然后每个小块与初始块或者上一段的密文段进行逻辑异或运算后再用密钥进行加密。第一个明文块与一个叫初始化向量的数据块进行逻辑异或运算。这样就有效的解决了ECB模式所暴露出来的问题即使两个明文块相同加密后得到的密文块也不相同。但是缺点也相当明显如加密过程复杂效率低等。 CFB模式Cipher FeedBack mode密码反馈模式 与ECB和CBC模式只能够加密块数据不同CFB模式能够将密文转化成为流密文。这种加密模式中由于加密流程和解密流程中被块加密器加密的数据是前块的密文因此即使本块明文数据的长度不是数据块大小的整数倍也是不需要填充的这保证了数据长度在加密前后是相同的。 OFB模式Output FeedBack mode输出反馈模式 不再直接加密明文块其加密过程是先使用块加密器生成密钥流然后再将密钥流和明文流进行逻辑异或运算得到密文流。 CTR模式CounTeR mode计时器模式 是一种通过将逐次累加的计算器进行加密来生成密钥流的流密码。每一个分组对应一个逐次累加的计数器并通过计数器进行加密来生成密钥流。也就是说最终的密文分组是通过将计数器加密得到的比特序列与明文分组进行XOR而得到的。 图文详解可参考: 传送门 填充方式 由于块密码只能对确定长度的数据块进行处理明文会被以64bit为一组划分为若干组进行加密每一组使用DES算法由明文获得密文。可是待加密的明文并不能保证总是可以正好分成若干个64bit的组最后一组正好满64bit的可能性往往是比较低的那么为了加密方便应该怎么办呢Padding就是用来解决这个问题的。 3DES主要的填充方式有如下几种 zeropadding 所有需要填充的地方都以0填充。 pkcs7padding 填充的内容是需要填充的字节数。如果最后一个数据块长度为len每个块的长度为klen恰好等于k时则需要在后面再添加一个完整的padding块。例如是以每8byte为一块最后一块有8byte则需要填充8byte的0x08。 pkcs5padding PKCS5 和 PKCS7 的唯一区别是PKCS5只能用来填充64bit(8bytes)的数据块除此之外可以混用。 示例代码 mbedtls包含了3DES加解密模块使用起来也十分方便在高级语言中java等一般3DES加密后会以base64的形式输出恰好mbedtls也集成了base64编解码模块废话不多说直接上代码 #include stdio.h #include mbedtls/aes.h #include mbedtls/des.h #include mbedtls/ctr_drbg.h #include mbedtls/entropy.hint main(int argc, char *argv[]) {unsigned char input[2048] {0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399};unsigned char output[2048] {0};unsigned char key[] {123456781234567812345678};UINT64 start_time 0;UINT64 des3_encrypt_time 0;UINT64 base64_encode_time 0;UINT64 base64_decode_time 0;UINT64 des3_decrypt_time 0;mbedtls_des3_context ctx;int data_len strlen(input); // 数据长度printf(data_len %d\r\n, data_len);int len (data_len / 8 (data_len % 8 ? 1: 0)) * 8; // 长度补为8的整数倍printf(padding len %d\r\n, len);printf(原始数据:\r\n%s\r\n, input);start_time LOS_CurrNanosec(); // 开始计时mbedtls_des3_init(ctx);mbedtls_des3_set3key_enc(ctx, key);// 使能 pkcs5padding 填充方式 #if 1if(data_len len) {len 8;}for(int i data_len; i len; i) {input[i] len - data_len;} #endiffor(int i0; ilen; i8) {mbedtls_des3_crypt_ecb(ctx, input[i], output[i]);}des3_encrypt_time LOS_CurrNanosec(); // 原始数据加密完成size_t base64_len;unsigned char *encode_buf NULL;mbedtls_base64_encode( NULL, 0, base64_len, output, len);encode_buf (unsigned char *)calloc(1, base64_len);mbedtls_base64_encode(encode_buf, base64_len, base64_len, output, len);base64_encode_time LOS_CurrNanosec(); // base64编码完成printf(加密后HEX: \r\n);for(int i0; ilen; i) {printf(%02x,output[i]);}printf(\r\n);printf(加密后base64:\r\n%s\r\n,encode_buf);printf(\r\n\r\n\r\n);printf(3DES加密耗时:\t\t%lldns\r\n, des3_encrypt_time - start_time);printf(base64编码耗时:\t\t%lldns\r\n, base64_encode_time - des3_encrypt_time);printf(加密总耗时:\t\t%lldns\r\n, base64_encode_time - start_time);printf(\r\n\r\n);// --------------------------- 开始解密start_time LOS_CurrNanosec(); // 开始计时size_t result_len;memset(output, 0, sizeof(output)); // 清空output buffer用于接收base64解码结果mbedtls_base64_decode( output, sizeof(output), result_len, encode_buf, base64_len);base64_decode_time LOS_CurrNanosec(); // 解码完成if(result_len%8 ! 0) {printf(base64解码数据不符合3DES加密数据格式! result_len %d\r\n, result_len);goto DES_Exit;}printf(base64解码后HEX: \r\n);for(int i0; iresult_len; i) {printf(%02x,output[i]);}printf(\r\n);mbedtls_des3_set3key_dec(ctx, key);memset(input, 0, sizeof(input)); // 清空输入buffer用于接收3DES解密结果for(int i0; iresult_len; i8) {mbedtls_des3_crypt_ecb(ctx, output[i], input[i]);}unsigned char padding_size input[result_len-1];if(padding_size 0 || padding_size 8){printf(解析失败, padding错误! padding_size %d\r\n, padding_size);goto DES_Exit;}data_len result_len - padding_size;input[data_len] \0; // 添加结束符des3_decrypt_time LOS_CurrNanosec(); // 3DES解密完成printf(解密后原始数据为:\r\n%s\r\n,input);printf(\r\n\r\n\r\n);printf(base64解码耗时:\t\t%lldns\r\n, base64_decode_time - start_time);printf(3DES解密耗时:\t\t%lldns\r\n, des3_decrypt_time - base64_decode_time);printf(解密总耗时:\t\t%lldns\r\n, des3_decrypt_time - start_time);printf(\r\n\r\n);DES_Exit:mbedtls_des3_free(ctx); }程序运行 如下为GD32F470单片机上的运行结果可供参考
http://www.hkea.cn/news/14313881/

相关文章:

  • 网站诊断书北京软件设计公司
  • php 网站下载器北滘高明网站建设
  • 数字网站建设化妆品购物网站模板下载
  • 网站免费软件下载关于设计的网站
  • 西宁网站公司德州手机网站建设
  • 国内外网站开发技术中国字体设计网
  • 公关策划公司网站源码专门做民宿的网站有哪些
  • 网站建设案例教程全网整合营销外包
  • 做的电影网站很卡营销策划师资格证
  • 下载宝硬盘做网站集团定制网站建设公司
  • 怀集建设房管部门网站网上购物的网站有哪些
  • 有好点的网站建设公司吗番禺人才网官网单位招考
  • 网站推广推广网络培训平台有哪些
  • 网站改版建议策划书和网站合作有哪些活动可以做
  • 关于网站策划书描述准确的有百度网站联盟
  • 在网站开发中如何设置用户登录销售网站开发意义
  • 电子政务 和网站建设总结wordpress 上传apk
  • 江门市住房城乡建设局网站东莞智通人才网最新招聘信息
  • 苏州做企业网站有哪些相册制作软件
  • 仪征做网站公司网站开发项目计划书模板
  • 品牌网站建设 蝌蚪小7网站开发费用清单
  • 自做网站的步骤小程序快速搭建
  • wordpress 网站播放器插件网站seo 最好
  • html好看的网站的代码百度推广的方式
  • 域名被锁定网站打不开合肥房产网官网
  • 网站开发最新书籍桂林象鼻山离哪个高铁站近
  • 建站的费用网络热词
  • 集团网站群图虫网官网入口
  • 网站建设需要步骤随机关键词生成器
  • 做展示网站网站建设与管理学习什么