网络安全之编码加密算法

news/2024/4/24 19:54:46/

网络安全之编码加密算法

  • 一、ROT5/13/18/47编码转换
  • 二、MD5加密

一、ROT5/13/18/47编码转换

  • ROT5、ROT13、ROT18、ROT47 编码是一种简单的码元位置顺序替换暗码,属于凯撒密码的一种。此类编码具有可逆性,可以自我解密,主要用于应对快速浏览,或者是机器的读取,而不让其理解其意。
  • ROT5: rotate by 5 places的简写。只对数字进行编码,用当前数字往前数的第5个数字替换当前数字,例如当前为0,编码后变成5,当前为1,编码后变成6,以此类推,例如:
原码:abced0123456789
加密后:abced5678901234
  • ROT13: rotate by 13只对字母进行编码,用当前字母往前数的第13个字母替换当前字母(大写字母只能替换成大写字母,小写字母只能替换成小写字母),例如当前为A,编码后变成N,当前为B,编码后变成O,以此类推顺序循环,例如:
原码:abcdefghijklmnopqrstuvwxyz
加密后:nopqrstuvwxyzabcdefghijklm
原码:ABCDEFGHIJKLMNOPQRSTUVWXYZ
加密后:NOPQRSTUVWXYZABCDEFGHIJKLM
  • ROT18: 这个比较特殊了,它不是旋转18个的意思,而是ROT5+ROT13的组合,也就是说对字母采用ROT13编码转换,对数字采用ROT5编码转换,例如:
原码:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
加密后:nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM5678901234
  • ROT47: 对数字、字母、常用符号进行编码,按照它们的ASCII值进行位置替换,用当前字符ASCII值往前数的第47位对应字符替换当前字符,例如当前小写字母z,编码后变成大写字母K,当前为数字0,编码后变成符号_。
  • 注意: ROT57编码的字符不是ASCII全部的字符集,它的ASCII值范围是33-126。

二、MD5加密

  • MD5的全称是Message-Digest Algorithm5,是一种不可逆的加密运算,唯一识别码。MD5码是每个文件的唯一校验码(MD5不区分大小写,但由于MD5码有128位之多,所以任意信息之间具有相同MD5码的可能性非常之低,通常被认为是不可能的),凭借此特性常被用于密码的加密存储、数字签名及文件完整性验证等功能。
  • 通俗地说MD5码就是个验证码,就像我们的身份证一样,每个人的都是不一样的。如果大家做自媒体的时候,直接复制别人的图片,直接搬运别人的视频。会第一时间被系统检测出你的内容并非原创。
  • 如客户往我们数据中心同步一个文件,该文件使用MD5校验,那么客户在发送文件的同时会再发一个存有校验码的文件,我们拿到该文件后做MD5运算,得到的计算结果与客户发送的校验码相比较,如果一致则认为客户发送的文件没有出错,否则认为文件出错需要重新发送。
  • MD5用途:
    1.防止被篡改:
    1)比如发送一个电子文档,发送前,我先得到MD5的输出结果a。然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。如果a与b一样就代表中途未被篡改。
    2)比如我提供文件下载,为了防止不法分子在安装程序中添加木马,我可以在网站上公布由安装文件得到的MD5输出结果。
    3)SVN在检测文件是否在CheckOut后被修改过,也是用到了MD5.
    2.防止直接看到明文:
    现在很多网站在数据库存储用户的密码的时候都是存储用户密码的MD5值。这样就算不法分子得到数据库的用户密码的MD5值,也无法知道用户的密码。(比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。)
    3.防止抵赖(数字签名):
    这需要一个第三方认证机构。例如A写了一个文件,认证机构对此文件用MD5算法产生摘要信息并做好记录。若以后A说这文件不是他写的,权威机构只需对此文件重新产生摘要信息,然后跟记录在册的摘要信息进行比对,相同的话,就证明是A写的了。这就是所谓的“数字签名”。

http://www.ppmy.cn/news/46508.html

相关文章

一些二叉树相关面试题

文章目录 1. 对折2. 判断是否是平衡二叉树3. 判断是否是搜索二叉树4. 二叉树的直径5. 寻找最大二叉搜索树6. 用递归套路判断是否是完全二叉树7. 派对的最大快乐值 1. 对折 这个大家可以自己用纸对折一下,我这里就简单的说一下: 这是我们第一次对折的情况…

ETCD(一)简介

1. ETCD是什么 etcd 是一个分布式键值对存储,设计用来可靠而快速的保存关键数据并提供访问。和数据库一样都是用来存数据的,但是etcd有自己的特点,因此有自己的使用场景。 2. etcd 特点 完全复制,集群中的每个节点均拥有全量数…

工程行业管理系统-专业的工程管理软件-提供一站式服务

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示…

零基础入门python好学么

python对于零基础的小伙伴算是非常友好的了~ python以简单易学著称~ Python简洁,高效的特点,大大提升了程序员的编码速度,极大的提高了程序员的办公效率,比如用其他编程语言5、6行代码才能整明白的,用Python可能1-2行就…

1-时间复杂度分析

时间复杂度 ①what: 指执行当前算法所消耗的时间 ②简介结论: 时间复杂度由多项式T(n)中最高阶的项来决定,系数的影响忽略即可 例子: 操作数量T(n) 时间复杂度O(f(n)) 常数,比如 100000(即&#xff1…

认识HTTPS以及了解HTTPS的加密过程

目录 简单认识HTTPS: 运营商劫持: 加密的理解: HTTPS的工作过程: 对称加密: 非对称加密: 中间人攻击 证书 简单认识HTTPS: HTTPS 也是一个应用层协议。是在 HTTP 协议的基础上引…

ESP32设备驱动-VEML6040颜色传感器驱动

VEML6040颜色传感器驱动 文章目录 VEML6040颜色传感器驱动1、VEML6040介绍2、硬件准备3、软件准备4、驱动实现1、VEML6040介绍 VEML6040 颜色传感器可感应红光、绿光、蓝光和白光,并使用 CMOS 工艺将光电二极管、放大器和模拟/数字电路集成到单个芯片中。 通过应用颜色传感器…

从功能到外企测开,工作1年半拿下年薪30万的测开 offer,未来可期

说一下我的大致情况,女,2018年毕业于末流211计算机本科。后来待业两年,完全没有从事互联网方面的工作。去年来到北京,在小公司做了一年多功能测试。今年11月底跳槽到外企,开始了我钱多事少离家近,每周965的…

阿里云服务器安装宝塔面板搭建网站全流程(一步步详解)

阿里云服务器安装宝塔面板教程,云服务器吧以阿里云Linux系统云服务器安装宝塔Linux面板为例,先配置云服务器安全组开放宝塔所需端口8888、888、80、443、20和21端口,然后执行安装宝塔面板命令脚本,最后登录宝塔后台安装LNMP&#…

继续学习Easyx

画圆角矩形函数:roundrect,前四个参数是和矩形一样的,表示先画一个矩形,然后就是要画它的圆角了,要怎么画它的圆角?这里使用四个一样的椭圆来将它的四个角画出来,而在这个里面的椭圆不再需要四个…

Java基础——IO流+字节/字符流使用

IO流 (1)IO流的概述: IO流也称为输入,输出流,就是用来读写数据的。I表示input,是数据从硬盘文件读入到内存的过程,称之输入,负责读。O表示output,是内存程序的数据从内…

【DES详解】(一)处理input block(64 bits)

一、DES 加密算法总览 0-1、初识置换 IP(Initial Permutation) 输入:明文(64 bits) 过程:初识置换 输出:处理后的明文permuted input(64 bits) 首先,对需要解…

扫清盲点:带你学习 树状数组 这种数据结构

什么是树状数组 树状数组是一种用于维护数列前缀和的数据结构,它可以在 O(logn) 的时间复杂度内修改单个元素的值,以及查询某个区间的元素和。 树状数组的特点是什么? 树状数组的特点其实就是,在单点修改 ,和区间查询…

Java 线程

线程:线程是进程的组成部分,一个进程可以拥有多个线程,而一个线程必须拥有一个父进程。线程可以拥有自己的堆栈,自己的程序计数器和自己的局部变量,但不能拥有系统资源。它与父进程的其他线程共享该进程的所有资源。 …

JSON学习|一篇就够了|(超详细|保姆级)

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:老茶icon 🙊 ps:点赞👍是免费的,却可以让写博客的作者开兴好久好久😎 📚系列专栏:Java全栈,计…

BZOJ 2940 条纹

题目大意 条纹游戏是一个双人的游戏。所需要的物品有一个棋盘以及三种颜色的长方形条纹,这三种颜色分别是红色、绿色和蓝色。红色条纹的尺寸是 c 1 c\times 1 c1,绿色条纹的尺寸是 z 1 z\times 1 z1,蓝色条纹的尺寸是 n 1 n\times 1 n1。…

Qt使用std::thread更新QPlainTextEdit内容

Qt使用std::thread更新QPlainTextEdit内容 一、演示二、部分代码讲解1. 启动函数2. 线程函数 三、代码片段1. 主函数2. MainWindow.h3. MainWindow.cpp 源文件 四、TCP相关解释 导言:记录Qt使用std::thread更新QPlainTextEdit内容 在写一个简易的服务端发送软件中&a…

全链路压测时动态路由数据源MySQL、MongoDB、Redis

目录 一、全链路压测 二、动态路由Mysql 1. 参数配置application-localDynamic.yml 2. 加载配置参数DynamicDataSourceProperties.java 3. 动态数据源DynamicDataSource.java 4. 动态数据源供应DynamicDataSourceProvider.java 5. 动态数据源bean 6. 动态数据源上下文D…

docker上面安装mysql

一、docker安装mysql 新建配置 /data/mysql3306/conf/my.cnf(新建logs,data,conf/my.cnf 后面要用) 详情: [mysql] #设置mysql客户端默认字符集 default-character-setUTF8MB4[mysqld] #设置3306端口 port3306#允许最大连接数 max_connections200#允许连接失败的次…

Diffusion模型系列文章

DDPM 论文 扩散模型包括两个过程:前向过程(forward process)和反向过程(reverse process),其中前向过程又称为扩散过程(diffusion process),如下图所示,从 …