哈希算法 加密算法

哈希算法应用广泛,如在PHP中,所有的数据 无论变量,常量,类,属性 都用Hash表来实现.

常用的哈希算法:

1、php内核哈希算法:time33 ,

算法:对字符串的每个字符,迭代的乘以33;

原型:   hash(i) = hash(i-1)*33 + str[i] ;

在使用时,存在一个问题,对相似的字符串生成的hashcode也类似,有人提出对原始字符串,进行MD5,然后再计算hashcode。

php实现:

2、Message Digest Algorithm MD5

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一,其中比较有名的还有sha-1RIPEMD以及Haval等。

MD5算法具有以下特点:

1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。

2、容易计算:从原数据计算出MD5值很容易。

3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。

4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。

3、RC4

在密码学领域,RC4( 又名ARC4 或者ARCFOUR )是应用最广泛的流加密算法,应用在安全套接字层(SSL)(用来保护网络上传输的数据)和WEP(无线网络数据保护)上

4、base64

基于64个可打印字符来表示二进制数据的方法。

http://php.net/manual/en/function.base64-decode.php

我们知道在计算机中任何数据都是按ascii码存储的,而ascii码的128~255之间的值是不可见字符。而在网络上交换数据时,比如说从A地传到B地,往往要经过多个路由设备,由于不同的设备对字符的处理方式有一些不同,这样那些不可见字符就有可能被处理错误,这是不利于传输的。所以就先把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大降低了。

对证书来说,特别是根证书,一般都是作Base64编码的,因为它要在网上被许多人下载。电子邮件的附件一般也作Base64编码的,因为一个附件数据往往是有不可见字符的。

1.标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;
2.base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);
3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;
4.严格来说base64不能算是一种加密,只能说是编码转换。使用base64的初衷。是为了方便把含有不可见字符串的信息用可见字符串表示出来,以便复制粘贴;

 

如果页面上有太多的图片则会多次请求服务器,如果直接文本存入html可以减少请求次数??????


5、rsa签名

6、DES全称为Data Encryption Standard

7、校验和:Checksum

总和检验码,校验和。在数据处理和数据通信领域中,用于校验目的的一组数据项的和,保证数据的完整性和准确性.

十六进制串:

1

0102030405060708

的校验和是: 24 (十六进制)

如果校验和的数值超过十六进制的FF,也就是255. 就要求其补码作为校验和

 

 

 

转载于:https://my.oschina.net/u/347414/blog/1456919

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值