Crypt加密函数简介(C语⾔)
定义函数char * crypt (const char *key,const char * salt);
函数说明
crypt是个密码加密函数,它是基于Data Encryption Standard(DES)演算法。crypt只适⽤于密码的使⽤,不适合⽤于资料加密。
crypt()将参数key所指的字符串加以加密,key字符串长度仅取前8个字符,超过此长度的字符没有意义。参数salt为两个字符组成的字符串,由a-z、A-Z、0-9,“.”和“/”所组成,⽤来决定使⽤4096 (a-z、A-Z、0-9,“.”和“/”共64个字符,64的平⽅为4096)种不同内建表格的哪⼀个。函数执⾏成功后会返回指向编码过的字符串指针,参数key 所指的字符串不会有所更动。编码过的字符串长度为13 个字符,前两个字符为参数salt代表的字符串。
返回值
返回⼀个指向以NULL结尾的密码字符串。
注意编译时要在末尾添加-lcrypt选项。
/**
* gcc -o crypt crypt.c -lcrypt
*/
#include <unistd.h>
#include <crypt.h>
#include <string.h>
int main(void)
{
char passwd[13];
char *key;
char slat[2];
key = getpass("Input First Password:");
slat[0] = key[0];
slat[1] = key[1];
strcpy(passwd,crypt(key,slat));
key = getpass("Input Second Password:");
slat[0] = passwd[0];
slat[1] = passwd[1];
printf("After crypt(),1st passwd :%s/n", passwd);
printf("After crypt(),2nd passwd:%s /n", crypt(key,slat));
return 0;
}
程序运⾏结果:(注:两次输⼊⼀样)
Input First Password:
Input Second Password:
After crypt(),1st passwd :asZvhAtTX.i7g
After crypt(),2nd passwd:asZvhAtTX.i7g
相关函数:crypt
表头⽂件:#include <unistd.h>
函数定义:char *getpass(const char *prompt)
密码字符串是什么函数说明:getpass()会显⽰参数prompt所指的字符串,然后从/dev/tty中读取所输⼊的密码,若⽆法从/dev/tty中读取则会转从标准输⼊设备中读取密码。所输⼊的密码长度限制在128个字符,包含结束字符NULL,超过长度的字符及换⾏字符/n将会被忽略。在输⼊密码时getpass()会关闭字符回应,并忽略⼀些信号如CTRL-C 或 CTRL-Z所产⽣的信号
返回值:返回⼀个指向以NULL结尾的密码字符串
附加说明:为了系统安全考虑,在般在使⽤getpass()输⼊密码后,该密码最好尽快处理完毕,然后将该密码字符串清除
范例参crypt()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。