linux crypt()函数使用总结
原型:
char *crypt(const char *key, const char *salt);
标准说明:
crypt()算法会接受一个最长可达8字符的密钥(即key),并施以数据加密算法(DES)的一种变体。salt参数指向一个两个字符的字符串,用来改变DES算法。该函数返回一个指针,指向长度13个字符的字符串。
在glibc2中crypt函数扩展使用:
crypt支持的额外加密算法有MD5、Blowfish(某些特定的Linux系统支持)、SHA-256(glibc2.7开始)、SHA-512(glibc2.7开始),并通过salt以“$id$salt$encrypted” 这样的格式区分不同算法,根据id的不同值选择不同的加密算法来代替默认的DES算法,id的格式如下:
ID | Method
─────────────────────────────────────────────
1 | MD5
2a | Blowfish (not in mainline glibc; added in some
| Linux distributions)
5 | SHA-256 (since glibc 2.7)
6 | SHA-512 (since glibc 2.7)
$5$salt$encrypted 的salt代表crypt函数使用SHA- 256加密算法
$6$salt$encrypted 的salt代表crypt函数使用SHA-512加密算法
$salt$ 中的salt最多支持长度为16字符的字符串,相比默认的DES算法支持最长为2字符有了很大的改进,最后crypt的返回值根据加密算法的不同也有不同长度的字符串返回。
MD5 | 22 characters
SHA-256 | 43 characters
SHA-512 | 86 characters
一天一天的满足,即一天一天的堕落!
标签:函数,crypt,DES,SHA,linux,512,salt,加密算法 From: https://blog.51cto.com/lenglingx/6390997