第八章 数据加密函数

来源:互联网 发布:易语言表格源码 编辑:程序博客网 时间:2024/06/08 10:20

第八章 数据加密函数

第八章 数据加密函数相关头文件:#include <unistd.h>crypt :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 <unistd.h>    main()    {        char passwd[13];        char *key;        char salt[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));    }getpass : char *getpass(const char *prompt);    取得一密码输入;    getpass()会显示参数prompt所指向的字符串,然后从/dev/tty中读取所输入的密码,    若无法从/dev/tty中读取则会转从标准输入设备中读取密码。所输入的密码长度限制    在128个这符,包含结束字符NULL,超过长度的字符及换行符('\n')将会被忽略。在输    入密码时getpass()会关闭字符回应,并忽略一些信号如CTRL-C或CTRL-Z所产生的信号。    返回一个指向以NULL结尾的密码字符串;    为系统安全考虑,一般在使用getpass()输入密码后,该密码最好尽快处理完毕,然后    将密码字符清除;    #include <unistd.h>    main()    {        char passwd[] = "password";        char *ptr;        ptr = getpass("Input password");        if ( !strcmp(passwd, ptr)) {            printf("Correct\n");        } else {            printf("Incorrect\n");        }    }
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 818公交路线 附近公交站 公交实时 镇江公交 公交车线路查询公交 贵阳公交 江门公交 日照公交 宜昌公交 公交广告 杭州公交 公交免费 晋城公交 许昌公交 公交行下载 中国公交 无锡公交 武汉公交 公交车被 西安市公交 三明公交 6路公交线路 公交行 查公交线路 公交电话 石家庄公交 公交车网 焦作公交 绵阳公交 内江公交 公交站台 公交吧 新乡公交 南京公交 抚顺公交 公交上 公交线路图 公交公交 公交e出行 肇庆公交 重庆公交