一文读懂数据加密

这篇具有很好参考价值的文章主要介绍了一文读懂数据加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文前言

在计算机信息安全领域,之前软件设计师的网络安全部分了解了一点密码学的知识,这里随想记录一下。
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码为“密文”,使其只能在输入相应的密钥之后才能显示出原容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
部分图片引用来源:https://blog.csdn.net/m0_69916115/article/details/126145847
部分参考文章:https://blog.csdn.net/xiaoming100001/article/details/81109617
https://blog.csdn.net/xiaoming100001/article/details/81109617

一文读懂数据加密
加密算法整体可分为:可逆加密不可逆加密,可逆加密又可以分为:对称加密非对称加密

面试官问:MD5是对称加密还是非对称加密?答:都不是,MD5是一种不可逆加密的消息摘要算法(见后文)

一、可逆加密

顾名思义就是可以通过特定密钥从加密后的密文中推算出明文的加密算法,这个加密算法是可逆的

1.1 对称加密(传统加密算法)

一文读懂数据加密
A发送时计算机使用加密算法和加密密钥对明文加密后通过网络传输给B,
B接收时计算机使用解密算法和解密密钥对接收的信息进行解密得到明文;
过程中需要通过安全信道传输密钥
So:
1、加密强度不高,但加密速度快效率高
2、密钥分发困难,密钥管理困难

大部分情况下使用对称加密具有不错的安全性,适合大数据量的加解密处理;

1.2 非对称加密(现代加密算法)

一文读懂数据加密
A、B各有自己的公用密钥私用密钥(公钥和私钥成对存在,公钥加密后,只有对应的私钥才能解密)
A发送时根据接受方B的公用密钥对明文加密后通过网络传输给B,
B接收时使用解密算法和私钥对接收的信息进行解密得到明文;
So: 加密速度比较慢、但是安全性高,适合小数据量加解密

这里使用非对称加密的话,存在一个问题:

假设有一个中间人 C,在A想发消息给B获取B公钥的时候,被C拦截后把假公钥给了A并获取B的公钥;
A据假公钥加密并发送信息给B,C再次拦截后用假公钥对应的私钥破解消息后把消息根据B公钥加密发送给B;
这个就是中间人的关键问题在于,A怎么确定B就是B?B怎么证明我就是我? 也就是身份验证问题
除了身份验证问题,带来的还有内容泄露问题数据完整性问题,那么该如何解决这些问题?

答案是采用 混合加密、消息摘要、数字签名的方法,想了解这些方法还得先了解不可逆加密;(见后文)

二、不可逆加密

顾名思义就是一种不可逆的加密方式,比如MD5,常常用于保存密码以及生成数字签名;

MD5是不可逆的,那为什么有一堆能解密的网站呢? 比如:https://md5.cn/;
首先得知道为啥MD5是不可逆的,MD5不可逆的原因是由于它是一种散列函数也叫哈希函数,哈希函数可以将任意长度的输入经过变化后得到固定长度的输出,这个固定长度的输出称为原消息的散列消息映射。并且由于在计算过程中原文的部分信息丢失,所以无法根据计算结果和计算过程推出原文。

理想的哈希函数可以针对不同的输入得到不同的输出,如果存在两个不同的消息得到了相同的哈希值,那我们称这是一个碰撞

我们常见的碰撞法:暴力碰撞(穷举法、字典法),就是利用计算机的资源尝试碰撞已知的MD5码。

1、穷举法

穷举法就是不停地尝试各种字符的排列组合,看哪一个组合的MD5码能对上。缺点是太耗费时间。举个例子,假设我们要破解一个6位大小写字母和数字混合的密码,那么一共有 (26 + 26 + 10) ^ 6 种组合。这个数的大小超过500亿。

2、字典法

字典法就是把计算结果以映射表的形式存放起来,一个原文对应着一个MD5值。将已知的MD5码查表,就可直接反查出原文。字典法体现了算法设计的“以空间换时间”的思想。缺点是比较耗费空间,而且实际上还是要穷举一遍所有的输入,只不过把穷举的结果存了起来。

有了以上了解,这里就可以回答问题了:
网上搜索到的md5解密网站是成千上万的md5原文和md5密文,放到了数据里,所谓的解密就是从数据库里查询有没有原文。

这种网站相当于md5的字典库,就是原文和密文的的对应表,数据量很庞大,上万亿级别,如果用户的密文正好在字典库里面,一查对应表就行。很多用户的密码都不够复杂,所以很容易被这种方式生成出来。一般网上这种md5解密网站能解密8位数左右的纯数字密码。密码太复杂的话,要根据这个网站的数据库和数据量而定。所以,平常尽量不要使用这种网站避免被把输入的原文和密文保存到字典中,而且最好平常密码设计长一点复杂一点;

后端开发过程中可避免的方法就是加盐,把用户传过来的字符串和自定义的字符串进行拼接后再MD5加密,加密次数可以多几次后再存入数据库;

三、 混合加密、消息摘要和数字签名

混合加密: 结合非对称加密和对称加密技术。客户端使用对称加密生成密钥对传输数据进行加密,然后使用非对称加密的公钥再对秘钥进行加密,所以网络上传输的数据是被秘钥加密的密文和用公钥加密后的秘密秘钥,因此即使被黑客截取,由于没有私钥,无法获取到加密明文的秘钥,便无法获取到明文数据。

消息摘要(数字摘要): 通过单向hash函数对原文进行哈希,将需加密的明文“摘要”成一串固定长度(如128bit)的密文,不同的明文摘要成的密文其结果总是不相同,同样的明文其摘要必定一致,并且即使知道了摘要也不能反推出明文。

数字签名技术: 数字签名建立在公钥加密体制基础上,是公钥加密技术的另一类应用。它把公钥加密技术和数字摘要结合起来,形成了实用的数字签名技术。

一文读懂数据加密
发送方对发送的原文通过hash函数加密生成消息摘要,发送方通过私钥加密对消息摘要生成数字签名,表示这个消息是我发的;
接受方对接受的原文通过hash函数解密生成消息摘要2,接收方通过发送方公钥对收到的签名摘要解密生成消息摘要1,两者消息摘要进行比对,这样就能确认文件内容是否被修改;

这样通过混合加密、消息摘要的方法就能解决数据完整性的问题;

常用的消息摘要算法(也就是不可逆算法也叫哈希算法):MD5(散列值128)、SHA(散列值160);

怎么解决身份验证问题呢? 回顾之前的非对称加密中的问题如下图:
一文读懂数据加密
这里就要用 数字签名技术 了,
一文读懂数据加密

数字证书内容

包括了加密后服务器的公钥、权威机构的信息、服务器域名,还有经过CA私钥签名之后的证书内容(经过先通过Hash函数计算得到证书数字摘要,然后用权威机构私钥加密数字摘要得到数字签名),签名计算方法以及证书对应的域名。

验证证书安全性过程

当客户端收到这个证书之后,使用本地配置的权威机构的公钥对证书进行解密得到服务端的公钥和证书的数字签名,数字签名经过CA公钥解密得到证书信息摘要。
然后证书签名的方法计算一下当前证书的信息摘要,与收到的信息摘要作对比,如果一样,表示证书一定是服务器下发的,没有被中间人篡改过。因为中间人虽然有权威机构的公钥,能够解析证书内容并篡改,但是篡改完成之后中间人需要将证书重新加密,但是中间人没有权威机构的私钥,无法加密,强行加密只会导致客户端无法解密,如果中间人强行乱修改证书,就会导致证书内容和证书签名不匹配。
那第三方攻击者能否让自己的证书显示出来的信息也是服务端呢?(伪装服务端一样的配置)显然这个是不行的,因为当第三方攻击者去CA那边寻求认证的时候CA会要求其提供例如域名的whois信息、域名管理邮箱等证明你是服务端域名的拥有者,而第三方攻击者是无法提供这些信息所以他就是无法骗CA他拥有属于服务端的域名。

四、文章最后

其实,这个些问题主要就是Https所实现的主要功能,也是平时为啥使用Http会被提示不安全,之后还想梳理的就是Token令牌的使用以及加密算法在实际开发中的应用,Token主要就是不能说每次传输都加密解密啥的进行验证,这样会增加暴露的风险。
所谓的Token,其实就是服务端生成的一串加密字符串、以作客户端进行请求的一个“令牌”。当用户第一次使用账号密码成功进行登录后,服务器便生成一个Token及Token失效时间并将此返回给客户端,若成功登陆,以后客户端只需在有效时间内带上这个Token前来请求数据即可,无需再次带上用户名和密码。
之后慢慢填坑吧;https://zhuanlan.zhihu.com/p/344173246文章来源地址https://www.toymoban.com/news/detail-438398.html

到了这里,关于一文读懂数据加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 计算机毕设项目(一)基于flask+mongo+angular实现爬取加密货币信息并使用LSTM模型预测价格的论坛可视化平台

    这个项目是一个基于 Flask 和 MongoDB 的深度学习应用程序,通过爬虫爬取加密货币行情和介绍信息,并根据新的数据使用LSTM去预测行情价格。展示涵盖了用户管理、新闻获取、加密货币数据处理、对话获取和处理、帖子管理等多个功能。 后端 : Flask 提供了一个轻量级的网页服

    2024年01月21日
    浏览(53)
  • 【深度学习: 计算机视觉】如何改进计算机视觉数据集

    机器学习算法需要大量数据集来训练、提高性能并生成组织所需的结果。 数据集是计算机视觉应用程序和模型运行的燃料。数据越多越好。这些数据应该是高质量的,以确保人工智能项目获得最佳的结果和产出。 获取训练机器学习模型所需数据的最佳方法之一是使用开源数

    2024年02月20日
    浏览(48)
  • 计算机数据的表示

    二进制 ( Binary ) :以 0b 或 0B 开头,字符仅含0和1. 用下标2或者数字后面加 B 表示。如 $(1011)_2$ 或 $1011B$ 八进制 ( Octal ) :以 0o 或 0O 开头,字符含0-7. 用下标8或者数字后面加 O 表示。如 $(17)_8$ 或 $17O$ 十六进制 ( Hexadecimal ) :以 0x 或 0X 开头,字符含0-9、a-f(代表10-15). 用下标

    2024年02月08日
    浏览(45)
  • 2023届计算机保研面试基础专业问题(数据结构、算法、计算机语言、计算机网络、数据库、操作系统、数学)

    以下的专业相关基础问题,是在2022年暑期准备面试过程中,断断续续准备的,最终上岸厦大啦,也希望这些内容对后面准备保研的学弟学妹们有帮助。少即是多、快即是慢,希望大家也不必太焦虑,慢慢来比较快! 堆、栈、队列、链表等数据结构 树:红黑树、二叉树的各类

    2024年02月15日
    浏览(63)
  • 计算机视觉常用数据集介绍

    MINIST 数据集应该算是CV里面最早流行的数据了,相当于CV领域的Hello World。该数据包含70000张手写数字图像,其中60000张用于train, 10000张用于test, 并且都有相应的label。图像的尺寸比较小, 为28x28。 数据说明及下载地址: http://yann.lecun.com/exdb/mnist/ 这个数据是由 Yann LeCun 创建

    2024年02月14日
    浏览(45)
  • 计算机COM口数据测试

    计算机COM口数据测试 一、基本使用流程 程序需要以管理员身份运行,COM口回路测试需短接2,3pin,测试时候使用控制台,配置测试相关路径,并在测试完成后 1.测试配置路径D:bigdataINIFWCOM.ini 2.测试完成后需要在路径D:bigdataLOG生成测试FWCOM.log文件 程序运行结果示意图 运行完

    2024年02月13日
    浏览(36)
  • 一文读懂AI计算平台库

    随着人工智能产业的快速发展,用户对算力的需求也与日俱增,再加上CPU在支撑大规模高并发计算任务时的不尽人意,各厂商纷纷自研AI芯片和计算平台库,通过屏蔽底层AI芯片的细节,以及对上层应用提供友好的API和开发工具包,让用户无需关注芯片操作逻辑和内部结构,同

    2024年02月02日
    浏览(37)
  • 动手学CV-Pytorch计算机视觉 天池计算机视觉入门赛SVHN数据集实战

    这里我们以datawhale和天池合作的天池计算机视觉入门赛为例,通过案例实战来进一步巩固本章所介绍的图像分类知识。 该比赛以SVHN街道字符为赛题数据,数据集报名后可见并可下载,该数据来

    2024年02月04日
    浏览(46)
  • 计算机视觉——手机目标检测数据集

    这是一个手机目标检测的数据集,数据集的标注工具是labelimg,数据格式是voc格式,要训练yolo模型的话,可以使用脚本改成txt格式,数据集标注了手机,标签名:telephone,数据集总共有1960张,有一部分是直实数据,有一部分是是真实数据。 数据集地址:https://download.csdn.net/dow

    2024年04月15日
    浏览(45)
  • 计算机视觉 - 了解Mosaic数据增强

            数据增强包含各种扩展和增强机器学习和深度学习模型数据集的技术。这些方法跨越不同的类别,每种方法都会改变数据以引入多样性并提高模型的稳健性。几何变换(例如旋转、平移、缩放和翻转)会修改图像方向和结构。颜色和对比度调整会改变图像外观,包

    2024年01月17日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包