定义函数

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()

最新文章

  1. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)
  2. [译]Writing Custom Middleware in ASP.NET Core 1.0
  3. bzoj1616
  4. oracle的sqlnet.ora,tnsnames.ora,listener.ora三个配置文件
  5. BAT技巧
  6. Xcode 移除(卸载)插件
  7. java 小记
  8. CPU虚拟化技术(留坑)
  9. Oracle 数据库用户管理
  10. Windows下Hadoop的环境安装[转]
  11. laravel 心得
  12. Fedora21无法播放MP4[已解决]
  13. Android NDK开发之从Java与C互调中详解JNI使用(一)
  14. 详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana) - kubernetes
  15. 关于如何使用xposed来hook微信软件
  16. Python必学Django框架,入门到精通学习视频教程全都在这可以领
  17. 微信小程序云函数Windows下安装wx-server-sdk
  18. 回调函数: 一定要在函数名前加上 CALLBACK,否则有可能引起内存崩溃!
  19. nodejs之crypto加密算法
  20. 使用普通用户执行 docker

热门文章

  1. Docker学习笔记五:Docker生成jenkins容器,支持Java Web项目持续集成、持续部署
  2. 常州day7
  3. 【BZOJ2138】stone(线段树,Hall定理)
  4. Hbase(四) 过滤器查询
  5. hadoop(五)HDFS原理剖析
  6. 【CF113D】Museum
  7. Redundant data in update statements
  8. 玲珑学院oj 1152 概率dp
  9. kotlin 变量声明
  10. zabbix 邮件配置