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

【安全】哈希(hash)算法可以防止数据被篡改的原理是什么

源讨论帖子:https://bbs.csdn.net/topics/392904600/close

防止数据被篡改的原理:

比如txt文件内容为:
data=abcd
hash=bf068ad93313b4688371dc3e32b1c854

如果黑客将data=abcd 串改成data=efgh,则接收方用hash算法myhash()

把data计算处理得到 hash1与hash=bf068ad93313b4688371dc3e32b1c854 不一致,则知道被篡改。

黑客想把data=abcd 改成data=efgh,然后用data=efgh计算出hash1 然后改hash的值为hash1 来欺骗对端比较难,因为 

1)对方不知道data有多长,hash从第几个字节开始。

2)即使知道了hash字节串所在位置,也不知道双方约定的算法myhash(),如:hash算法是MD5("data=1password"),不偷偷告诉你,黑客咋猜出我的hash算法加的盐是password呢?

哈希函数的特性,只要原数据有一丁点的修改,那么算出来的哈希值必然会大不相同。
CRC也是类似的道理,但是CRC的安全性如抗碰撞性远没有哈希来得高。

(但是CRC计算处理的字节是2个/4个字节,哈希算法如MD5算出来的是16字节,空间效率差,适合用在安全性,用在通信当中带宽消耗大,在安全上MD5 容易受到字典攻击)

在加密要求很高的通信过程中,参考TLS协议,还会在hash基础上再加一层RSA非对称加密。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【数据库】时序数据库InfluxDB 性能测试和为什么时序数据库更快、时序数据库应用场景...
  • 【安全编码】代码质量|C语言安全编码---增加中
  • python的静态变量和静态方法
  • 【C++】libevent 、libev、 libuv 、asio、 muduo、 ace 等C++ 网络库
  • 【工具】Fiddler HTTP 抓包工具使用教程
  • 【测试】Cunit单元测试
  • 【VS linux】使用Visual Studio 2017开发Linux程序
  • 【MQTT】python MQTT客户端
  • 【STL】STL 操作
  • 【FTP】Linux中ftp的常用命令
  • 【HTTP】Linux命令行访问网页
  • 【libevent】libevent 库的使用(windows) ---编辑中
  • 【高并发】多线程之无锁队列
  • 【RAII】RAII 技术(内存安全解决技术/自动化解锁技术)
  • 【HTTP】为何HTTP使用文本描述结构和协议的趋势|HTTP协议问什么要基于文本而不是基于二进制节约带宽...
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Hibernate最全面试题
  • JavaScript设计模式之工厂模式
  • java中具有继承关系的类及其对象初始化顺序
  • LintCode 31. partitionArray 数组划分
  • React Transition Group -- Transition 组件
  • Vue 重置组件到初始状态
  • windows下如何用phpstorm同步测试服务器
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 用mpvue开发微信小程序
  • 用Python写一份独特的元宵节祝福
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # 飞书APP集成平台-数字化落地
  • (CPU/GPU)粒子继承贴图颜色发射
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转)程序员技术练级攻略
  • .htaccess配置重写url引擎
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .net core 6 redis操作类
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用框架
  • .NET 药厂业务系统 CPU爆高分析
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net快速开发框架源码分享
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @Autowired标签与 @Resource标签 的区别
  • @EnableConfigurationProperties注解使用
  • [ MSF使用实例 ] 利用永恒之蓝(MS17-010)漏洞导致windows靶机蓝屏并获取靶机权限
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [ActionScript][AS3]小小笔记
  • [C/C++]数据结构 深入挖掘环形链表问题
  • [CR]厚云填补_SEGDNet
  • [I2C]I2C通信协议详解(二) --- I2C时序及规格指引
  • [iBOT] Image BERT Pre-Training with Online Tokenizer
  • [IDF]聪明的小羊