当前位置:   article > 正文

linux c des encrypt and decrypt_c des_encrypt

c des_encrypt

des为块加密算法,数据长度必须为8的倍数,密钥长度为8:

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <rpc/des_crypt.h>
  5. int main(int argc, char** argv){
  6. char c = '\x8';
  7. printf("%c\n",'\x8');//\转义符后面三位数表示8进制如\101为65,\x8则为十六进制,\95则为十制
  8. char data[4096]= "abcdefghijklmnopqrstuVW000000000";//des 加密,数据一定要是8的倍数,不补齐,密后做取舍
  9. //we must fix the data to a multiple of 8...
  10. char key[8] = "12345678";
  11. char key2[8] = "12345678";
  12. des_setparity(key);
  13. ecb_crypt(key,data,strlen(data),DES_ENCRYPT);
  14. printf("%s\n",data);
  15. des_setparity(key2);
  16. ecb_crypt(key,data,strlen(data),DES_DECRYPT);
  17. printf("%s\n",data);
  18. return 0;
  19. }

  1. [xxx@localhost code]$ gcc -g -lcrypt destest.c
  2. [xxx@localhost code]$ ./a.out
  3. .Ck玫??9.PhQg?.?j}R.O9
  4. abcdefghijklmnopqrstuVW000000000
  5. [xxx@localhost code]$


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/361491
推荐阅读
相关标签
  

闽ICP备14008679号