• 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()
  • 相关阅读:
    分苹果
    马拉车算法(求最长回文子串)
    KMP
    字典树
    关于子类和父类中的this的用法
    最长上生子序列LIS
    sass
    黑马程序员----java基础笔记下(毕向东)
    DOM
    ajax教程
  • 原文地址:https://www.cnblogs.com/zhouhbing/p/4191799.html
Copyright © 2020-2023  润新知