crypt函数是将字符串用 DES 编码加密
crypt(将密码或数据编码)
相关函数 getpass
表头文件 #define _XOPEN_SOURCE
#include
定义函数 char *crypt(const char *key, const char *salt);
函数说明 crypt()将使用Data Encryption Standard(DES)演算法将参数key所指的字符串加以编码,key字符串长度仅取前8个字符,超过此长度的字符没有意义。参数salt为两个字符组成的字符串,由a-z,A-Z,0-9,".",和"/"所组成,用来决定使用4096种不同内建表格的哪一个。函数执行成功后会返回指向编码过的字符串指针,参数key所指的字符串不会有所更动。编码过的字符串长度为13个字符,前两个字符为参数salt代表的字符串。
返回值 返回一个指向以NULL结尾的密码字符串。
注意; 用GCC编译时需加 -lcrypt。
#include #include #include
int main() { char passwd[13] = {""}; char *key = NULL; char slat[2] = {""}; key = getpass("INput first password:"); slat[0] = key[0]; slat[1] = key[1]; strcpy(passwd, crypt(key, slat)); // memset(key, 0, 13); // memset(slat, 0, 2); key = getpass("INput second password:"); slat[0] = key[0]; slat[1] = key[1]; printf("after crypt(),1st passwd :%s\n", passwd); printf("after crypt(),1st passwd :%s\n", crypt(key, slat)); return 0; }
执行 INput first password: test
INput second password: test
输出的将会是相同的编码
after crypt(),1st passwd : teH0wLIpW0gyQ after crypt(),1st passwd : teH0wLIpW0gyQ
|