crypt()函数可以加密8个字节的数据,提供2字节的扰码,返回一个指向13个ASCII字符串的指针。

#include "crypt.h"    //

没有此行每次计算crypt()都会返回不同的int值

#include "unistd.h"​

char *crypt(const char *key, const char

*salt);​

写个名为“des.c”的测试crypt()函数的文件,内容如下:

#include "stdio.h"

#include "crypt.h"

// crypt() will return

different int without this line

#include

"unistd.h"

int main()

{

printf(" * DES(%s) = %s\n", "test",

crypt("test", "test"));

return 0;​

}​​

编译并测试:

qige@ubuntu:~$ gcc -o des

des.c -lcrypt

qige@ubuntu:~$

./des

*

DES(test) = teH0wLIpW0gyQ​

qige@ubuntu:~$

改进后的“des.c”文件内容:

​#include

"stdio.h"

#include

"string.h"

#include

"crypt.h"​

#include

"unistd.h"

typedef unsigned char

uchar​;

typedef unsigned int

uint;​

void print_cli_help(char

*self);​

int main()

{

uint _c, _help = 0;

uchar key[8] = { 0 }, salt[2] = { 0 },

passwd[13] = { 0 };

while((_c = getopt(argc, argv, "s:h")) != -1)

{

switch(_c)

{

case 's':

snprintf(key, sizeof(key), "%s",

optarg);

salt[0] = key[0]; salt[1] = key[1];

break;

case 'h':

default:

_help = 1;​

break;​​​

}​

}​

if (_help > 0 || argc

<= 1) {

print_cli_help(argv[0]);

return

0;​

}​

printf(" * DES(%s) = %s\n", key, crypt(key,

salt));

return 0;​

}​

void print_cli_help(char

*self)

{

printf("Compile: gcc -o %s *.c\n",

self);​

printf("  Usage: %s [ -k

key_string] [-h]\n", self);

printf(" Typical: %s -s test\n",

self);​

}​

编译Makefile文件,内容如下(使用时请务必将“gcc”和“rm”前的4个空格替换为一个Tab,即“\t”):

# Qige @

2015.12.01

all: des

des: *.c

gcc -o $@ $^ -lcrypt

clean:

rm -f des​

编译并测试:

qige@ubuntu:~$ make

qige@ubuntu:~$ ./des -s test

* DES(test) =

teH0wLIpW0gyQ​

qige@ubuntu:~$ ​./des -h

Compile: gcc -o ./des *.c

Usage: ./des [-k string]

[-h]

Typical: ./des -s test

qige@ubuntu:~$ ​

linux crypt函数位置,Linuc C加密函数crypt()相关推荐

  1. php中md5加密函数怎么用,PHP加密函数—md5()函数加密实例用法

    PHP加密函数-md5()函数加密 什么是MD5()函数? MD5()函数是计算器字符串的 MD5散列值,使用MD5的算法,MD5的全称是Message-Digest Algorithm 5,它的作用 ...

  2. php rc4对称加密函数,为什么php rc4加密函数的执行结果是乱码?

    php rc4加密函数的执行结果乱码是因为RC4是二进制加密算法,而密文是无法直接当作文本查看的,可以用base64对它编码即可解决乱码问题. 为什么php rc4加密函数的执行结果是乱码? 以下是执 ...

  3. PHP加密函数与解密函数详解

    本篇文章主要为大家详细介绍了PHP中的加密函数与解密函数 Php常用的加密函数有 MD5加密(不可逆).Crypt加密(不可逆).Sha1加密(不可逆).Urlencode加密(可逆) base64编 ...

  4. php中md5加密函数怎么用,php中md5()函数的定义和用法汇总

    PHP加密函数-md5()函数加密什么是MD5()函数?MD5()函数是计算器字符串的 MD5散列值,使用MD5的算法,MD5的全称是Message-Digest Algorithm 5,它的作用是把 ...

  5. 【Android 逆向】函数拦截实例 ( 函数拦截流程 | ① 定位动态库及函数位置 )

    文章目录 一.函数拦截流程 二.定位动态库及函数位置 一.函数拦截流程 函数拦截流程 : 定位动态库及函数位置 : 获取该动态库在内存中的位置 , 以便于 查找函数位置 ; 插桩 : 在函数的入口处插 ...

  6. encrypt函数c语言,Crypt加密函数简介(C语言)

    定义函数 char * crypt (const char *key,const char * salt); 函数说明 crypt是个密码加密函数,它是基于Data Encryption Standa ...

  7. crypt密码加密函数的基本用法

    定义函数 char * crypt (const char *key,const char * salt); 函数说明 crypt是个密码加密函数,它是基于Data Encryption Standa ...

  8. php crypt,PHP加密函数—crypt()函数加密用法实例

    PHP加密函数-crypt()函数加密 在介绍加密函数之前,我们先来介绍一下数据加密原理:就是对原来的明文件或者数据按照某种算法进行处理,使其成为不可读的一段代码,通常称之为"密文" ...

  9. php md5 64,php加密函数md5,crypt,base64_encode的用法介绍

    介绍下php中自带的加密函数 1,不可逆的加密函数为:md5().crypt() md5() 用来计算 MD5 哈稀.语法为:string md5(string str); crypt() 将字符串用 ...

最新文章

  1. 不填写内容用哪个斜杠代替_越来越多人衣柜不装移门,今后都流行用这种代替,好看又不占地!...
  2. 2019年宁夏文化科技卫生“三下乡”集中示范活动启动
  3. 【二叉树详解】二叉树的创建、遍历、查找以及删除等-数据结构05
  4. 盘点智能语音行业:Nuance没落 BAT围绕核心业务
  5. 【Android游戏开发十四】深入Animation,在SurfaceView中照样使用Android—Tween Animation!...
  6. 业界首发|阿里云重磅发布云原生架构白皮书
  7. Java成员变量和局部变量的区别
  8. SAP CRM WebClient UI根据扩展字段搜索出结果的实现原理
  9. java 优酷视频缩略图_java获取优酷等视频缩略图
  10. C++表白代码---一颗心
  11. 平凡函数依赖是什么?
  12. PDE34 Transport equation: derivation general solution
  13. java nio空轮循_Java nio 空轮询bug到底是什么
  14. Selenium2(WebDriver)总结(一)---启动浏览器、设置profile加载插件
  15. rpgmakermv存档修改网站_NexT 网站配置——雏形初成
  16. 代码审查工具 rietveld的安装与使用(二)
  17. 干货 | 什么是ABCDE轮融资?
  18. ios 模拟器沙盒_查看iOS模拟器应用的沙箱文件
  19. 太平洋电信分享如何“构建敏捷网络,共筑网络安全防护带”
  20. 51中断优先级及中断嵌套

热门文章

  1. 为什么苹果原装数据线容易破皮?怎么解决苹果数据线损坏问题
  2. JQuery获取iframe中window对象方法.contentWindow
  3. element-ui日期选择器el-date-picker, 案例:填写有效期和选择开始时间后, 自动生成结束时间, datetime时间转换
  4. puppet和saltstack 对比
  5. VC++生成Data-Matrix格式的二维码
  6. 树莓派+python:音乐播放与控制功能
  7. 同居生子,孩子的抚养费问题?
  8. chrome浏览器加快下载速度方法
  9. 对敏感词过滤(DFA算法)的思考与理解
  10. 对一个java源文件进行正确编译,给定如下一个Java源文件Child.java,编译并运行Child.java,以下结果正确...