zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    高级指令(三)
    高级指令(二)
    高级指令(一)
    高级指令(四)
    基础指令(二)
    02使用Maven构建Java项目
    03初识Maven核心概念(上)
    01Maven概述与安装
    关于sizeof与#pragma pack 以及网络上关于字节对齐的一点感想
    学习之"setjmp和longjmp函数"
  • 原文地址:https://www.cnblogs.com/wangliangblog/p/7325819.html
Copyright © 2011-2022 走看看