PHP加密方式

//采用php自带hash()函数,进行加盐加密操作
$pass = "abcdefg";
$salt = rand();
$pass = crypt($pass,$salt);
echo $pass . '------salt------' . $salt;

运行结果:
请添加图片描述
解释:

$pass用来存放自己的密码 $salt是php内置函数自动生成的字符串 p a s s = c r y p t ( pass = crypt( pass=crypt(pass,$salt)是使用php5.5版本更新的加盐加密函数,将字符串加密为未知字符串,这个过程是不可逆的
存放数据库时,应添加 pass 和 salt 字段,将随机生成的salt以及加密后的密文pass保存下来
进行验证操作时,输入的密码为pass,根据用户名从数据库中读取对应的salt以及pass,再次调用crypt()加密函数对输入的内容进行再次加密,与数据库中内容进行比对,进行验证。
安全性比md5,sha-1,sha-256要高

密码学学习笔记
请添加图片描述

第一章 密码学

1.1密码学的基本概念

密码:微信、QQ、支付宝、银行……等等,用来保护自己的财产,鉴别不同的用户

密码学:网络安全,信息安全,区块链等这些学科的基础

密码学已经存在好几千年的历史

1.2密码学的历史

1.2.1古代密码学

古代就已经开始使用密码,目的就是希望保护信息。

①替换法

使用固定的信息,将原文替换成密文

原文:fly 加密方法: f---->a l------>b y------->c 密文:abc

替换法的加密方式:第一种:单表替换 第二种: 多表替换

单表替换:原文和密文使用的是同一张表

例如:fly--------------abc

多表替换:表示有多张表,原文和密文进行对比

例如:1. abcde----swtrp 2.abcde------chfhk 3.abcde------jftou

​ 原文:abc

​ 密钥:312 (分别代表三张表)

​ 密文:jwf

②移位法

将原文中的字母按照字母表中的位置进行移动

恺撒加密(军事中传递信息): 例如:abcde -------->cdefg (移位2位)

(不安全,易于暴力破解)

只能移动25次

③古典密码学的破解方式

频率分析法:概率论(统计学)

基本概念:将明文字母的出现频率与密文字母的频率相比较的过程。通过分析每个符号出现的频率而轻易地破译代换式密码。在每种语言中,冗长的文章中的字母表现出一种可对之进行分辨的频率。

1.2.2近代密码学

恩尼格玛密码机:二战时期,对文件进行加密和解密

核心:替换法,移位法

机器加密,后被图灵破解(人工智能之父)

1.2.3现代密码学

①散列函数

散列函数,也叫做哈希函数(hash函数)

常见的加密方式:MD5 , SHA-1 , SHA-256(比较流行的加密方式)

MD5可以将任意长度的原文生成一个128位(16字节)的哈希值

SHA-1可以将任意长度的原文生成一个160位(20字节)的哈希值

②对称加密

对称加密,使用的加密方式和解密方式,使用的是同一把密钥

对称密码分为:序列密码(流密码),分组密码(块密码)两种

流密码:对信息流中的每一个元素(一个字母或一个比特)作为基本的处理单元进行加密

块密码:先对信息流进行分块,再对每一块分别加密

例如:

原文:1234567890

流密码:先对1加密,再对2加密,再对3加密.....最后拼接成密文

块密码:将密码分为不同的块,如1234成块,5678成块,90XX成块(XX为补位数字),再分别对每个块进行加密,最后拼接成密文。

前面提到的古典加密方式都属于流密码

③非对称加密

非对称加密:有两把密钥,使用公钥加密,必须使用私钥解密,或者,使用私钥加密,必须使用公钥解密

1.2.4如何设置密码才安全

①密码不要太常见,类似123456作为密码

②各个应用软件的密码不要设置一样,撞库(找小公司的密码进行破解,试你的各种密码)

③在设置密码的时候,可以加一些特殊的标记,,注册京东的账号时,加上jd,zfb,wx,防止撞库

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太吾传人,玛卡巴卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值