Linux深度解析 crypt 加密
一、crypt函数
#define _XOPEN_SOURCE /* See feature_test_macros(7) */
#include <unistd.h >
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个字符的字符串。
编码过的字符串长度为13 个字符,前两个字符为参数salt代表的字符串。
三、返回值
返回一个指向以NULL结尾的密码字符串。
注意:编译时要在末尾添加-lcrypt选项。
四、实例
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main()
{char password[13];char *key;char slat[2];key = getpass("Input first password:");slat[0] = key[0];slat[1] = key[1];strcpy(password,crypt(key,slat));key = getpass("Input second password:");slat[0] = password[0]; //取加密之后的字符串的第一个字符slat[1] = password[1]; //取加密之后的字符串的第二个字符printf("After crypt(),1st password:%s\n",password);printf("After crypt(),2st password:%s\n",crypt(key,slat));return 0;
}
两次输入的密码一致,会发现加密之后的结果是一样的。
说明:编码过的字符串的前两个字符为参数salt代表的字符串。
Linux深度解析 crypt 加密相关推荐
- random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串...
openssl rand -hex n (n is number of characters) LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head ...
- 在Linux下生成crypt加密密码
[摘要]当我们用红帽Kickstart脚本或useradd或其他方式写东西的时候,经常会需要用到crypt命令加密生成的密码格式.那么,有没有其他方式可以生成这种格式的密码?事实上,方法有很多 1.我 ...
- 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一第1章 C语言与内存1.1 引言...
本节书摘来自异步社区<嵌入式Linux与物联网软件开发--C语言内核深度解析>一书中的第1章,第1.1节,作者朱有鹏 , 张先凤,更多章节内容可以访问云栖社区"华章计算机&quo ...
- 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一2.4 位运算构建特定二进制数...
本节书摘来自异步社区<嵌入式Linux与物联网软件开发--C语言内核深度解析>一书中的第2章,第2.4节,作者朱有鹏 , 张先凤,更多章节内容可以访问云栖社区"异步社区" ...
- 图文深度解析Linux内存碎片整理实现机制以及源码
图文深度解析Linux内存碎片整理实现机制以及源码. 物理内存是以页为单位进行管理的,每个内存页大小默认是4K(大页除外).申请物理内存时,一般都是按顺序分配的,但释放内存的行为是随机的.随着系统运行 ...
- php怎么魔方加密,深度解析php混淆加密解密的手段,希望对大家解读魔方加密有所帮助 [tihuan]...
深度解析php混淆加密解密的手段,希望对大家解读魔方加密有所帮助 [tihuan] 2018-12-31 php做为一门当下非常流行的web语言,常常看到有人求解密php文件,想当年的asp也是一样. ...
- Linux tty1密码,Linux 无法从本地字符界面(tty1-tty6)登陆深度解析
Linux 无法从本地字符界面(tty1-tty6)登陆深度解析 作者:吴伟龙(PrudentWoo) 问题描述: 每次装完Oracle数据库之后,本地的tty1-tty6就无法登陆,只能通过vtty ...
- Linux正则表达式多个条件并,linux 正则表达式深度解析
简介 大体来讲,正则表达式的文法分为3种标准:BRE.ERE 和 ARE.其中 BER 和 ERE 属于 POSIX 标准,ARE 则是由各家定义的扩展. POSIX 正则表达式 传统上,POSIX ...
- 嵌入式Linux与物联网软件开发:C语言内核深度解析
嵌入式Linux与物联网软件开发:C语言内核深度解析 1.C语言与内存 1.引言 2.计算机程序运行的目的 3.位.半字.字的概念和内存位宽 ...
最新文章
- 百亿估值的Databricks,到底是做什么的?
- C# 在异步中使用HttpWebRequest出现的“正在终止线程”错误的解决方案
- 搜索引擎solr系列---多字段匹配的实现方法
- 搜索引擎ElasticSearchV5.4.2系列一之ES介绍
- matlab中find()函数用法
- osgi java_使普通的旧Java OSGi兼容
- 真正的动态声明性组件
- php识别地址,实现地址自动识别实例(PHP)
- php内容管理器是什么原因,有什么好的php内容管理后台吗?打算试水接单的大三狗提问...
- java 中 如何sum 乘法_java 加法 乘法问题
- OPPO发布小布虚拟人,开放面向开发者的多元AI能力
- 时间轮(TimingWheel)
- 计算机二级C语言题型分值占比+考试要求+考试内容
- python中如何打开文件选择框
- 重装mysql_重装MySQL步骤详解
- 【数学 进阶】初等数论 学习笔记
- invalid alteration of datatype(varchar2转化clob)
- 解决ssh过程中报Too many authentication failures
- 程序猿爱上了经济学《经济学原理》
- 2012年1月11日
热门文章
- 外星人全家桶性能体验 — Navis
- 命令模式--把需求记录在案,让事务灵活可变(行为模式02)
- android获取context的方法,Android编程获取全局Context的方法
- Ubuntu无法远程连接
- 6.2神经网络算法实现--python机器学习
- 论文阅读:Question Answering Over Temporal Knowledge Graphs
- AngularJs使用ng-repeat实现数据循环展示的效果
- mysql连续打卡次数_MySQL打卡学习(第四次)
- SLAM前端:PnP(一)DLS、P3P
- C盘空间不够 mklink解决VScode扩展迁移到其他盘