当前位置: 首页 > news >正文

哈希算法 加密算法

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

哈希算法应用广泛,如在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-1、RIPEMD以及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

相关文章:

  • vuejs经验交流之-图片上传
  • 记一次Runtime Hook的问题
  • POJ 2942 圆桌骑士
  • 2016.3.17__CSS3动画__第十一天
  • 【搞机】9.7英寸iPad Pro 上手开箱(图文)
  • 【凯子哥带你夯实应用层】使用ActionProvider实现子菜单时遇到的一个坑
  • 使用 FreeRTOS 时注意事项总结(基础篇教程完结)
  • 推荐系统中的矩阵分解演变方式
  • Java——操作Excel表格,读取表格内容
  • 伊吹萃香
  • BZOJ 1878 SDOI2009 HH的项链 树状数组/莫队算法
  • 数据库对象
  • 中文分词--逆向最大匹配
  • servlet文件下载2(单文件下载和批量下载)
  • php 上传文件
  • [Vue CLI 3] 配置解析之 css.extract
  • Apache的基本使用
  • CEF与代理
  • co模块的前端实现
  • es6(二):字符串的扩展
  • ES6系统学习----从Apollo Client看解构赋值
  • gulp 教程
  • input的行数自动增减
  • Javascript弹出层-初探
  • JAVA多线程机制解析-volatilesynchronized
  • Java-详解HashMap
  • LeetCode18.四数之和 JavaScript
  • LeetCode29.两数相除 JavaScript
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • React 快速上手 - 07 前端路由 react-router
  • webpack+react项目初体验——记录我的webpack环境配置
  • XForms - 更强大的Form
  • 官方解决所有 npm 全局安装权限问题
  • 手写双向链表LinkedList的几个常用功能
  • 详解NodeJs流之一
  • 移动端唤起键盘时取消position:fixed定位
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • #NOIP 2014# day.1 T2 联合权值
  • $.ajax()方法详解
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (30)数组元素和与数字和的绝对差
  • (39)STM32——FLASH闪存
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • (转)h264中avc和flv数据的解析
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • (转)项目管理杂谈-我所期望的新人
  • (转载)(官方)UE4--图像编程----着色器开发
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ****Linux下Mysql的安装和配置
  • . ./ bash dash source 这五种执行shell脚本方式 区别