您现在的位置是:首页 >学无止境 >网络安全之编码加密算法网站首页学无止境

网络安全之编码加密算法

西西先生666 2023-05-21 00:00:02
简介网络安全之编码加密算法

网络安全之编码加密算法

一、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写的了。这就是所谓的“数字签名”。
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。