算法实现汇总
文章平均质量分 64
securitit
由上至下深入
展开
-
流加密算法之Java RC4算法应用 附可用工具类
欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! RC4算法简介(来源于百度百科) RC4是密钥长度可变的流加密算法簇。RC4是一种在电子信息领域加密的技术手段,用于无线通信网络,是一种电子密码,只有经过授权(缴纳相应费用)的用户才能享受该服务。 之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右。 RC4算法的原理很简单,包括初始化算法和伪随机子密码生成算法两大部分。假设S-box长度和密钥长度均为n。先来.原创 2020-08-24 20:45:27 · 1109 阅读 · 0 评论 -
对称加密算法之Java SM4算法应用 附可用工具类
欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! SM4算法简介 与DES和AES密码算法实现类似,SM4是一种分组密码算法。SM4分组密码算法用于无线局域网和可信计算系统的专用分组密码算法,该算法的分组长度为128比特,密码长度为128比特。SM4算法是我国制定WAPI标准的组成部分,同时也可以用于其它环境下的数据加密保护。 加密算法与密钥扩展算法均采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。SM4算法加/解密算法的结构相同,只是.原创 2020-08-24 20:07:56 · 9778 阅读 · 1 评论 -
对称加密算法之 Java DES算法应用 附可用工具类
欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! DES算法简介 DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。 DES算法具有极高安全性,除了用穷举搜索法对DES算法进行攻击外,还没有发现.原创 2020-08-24 19:41:50 · 3755 阅读 · 0 评论 -
非对称加密算法之Java RSA算法应用 附可用工具类
欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! RSA算法简介 RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。 在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。 RSA允许你选择公钥的大小。512位的密钥被视为不安全的;768位的密钥不用担心受到除了.原创 2020-08-24 19:29:52 · 3736 阅读 · 0 评论 -
对称加密算法之 Java 3DES算法应用 附可用工具类
欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! 3DES算法简介 3DES又称Triple DES,是DES加密算法的一种模式,它使用两条不同的56位密钥对数据进行三次加密。 DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。相对DES,3DES更为安全。 3DES是DES向AES过渡的加密算法,其具体实现如下: 设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,M代表明文,C代表密文,这样:.原创 2020-08-24 17:20:11 · 4285 阅读 · 0 评论 -
对称加密算法之Java AES算法应用 附可用工具类
欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! AES算法简介 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准.原创 2020-08-22 00:44:03 · 4889 阅读 · 1 评论 -
对称加密算法之Java与Js算法互通应用
欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! 场景分析: 在实际应用过程中,往往存在多语言交互的需求,比如今天所属的Java-Js间的3DES加解密互通问题。之前工作中,曾经遇到过类似这样的需求,JS端加密传输信息至Java服务端,Java解密信息进行应用,在进行很多次尝试之后,终于调通了。 Js端使用Crypto-JS工具集,Java端使用本博《对称加密算法之Java 3DES算法应用》 提供的工具类。 交互约定: · 交互秘钥:ABCDEFGHIJKLMNOPQRS.原创 2020-08-12 17:58:01 · 4145 阅读 · 0 评论 -
Base4 应用及设计
在对Base64、Base32、Base16进行了原理分析和应用示例后,突然想起,有没有一种不可见的编码,在一般文本查看器时,无法直观的查看文本中的内容,从而达到隐藏原文的目的。当然这只是一种编码,并不会保证数据的安全性。 · ASCII 编码 首先,在进行编码设计之前,我们需要先了解一下ASCII编码表中,每个编码的表现形式,写一个测试类,把ASCII全部输出:package com.arhorchin.securitit.codec.ascii;public class AsciiTe原创 2020-07-21 10:05:11 · 5780 阅读 · 0 评论 -
SHA 消息摘要算法原理详解
SHA算法家族包括SHA-1、SHA-224、SHA-256、SHA-384、SHA-512几种算法,接下来就以最具代表性的SHA-1算法的具体计算过程。 SHA-1是一种能够根据上限为264比特的信息计算出160比特的单向散列函数。 算法分析: 1)填充 SHA-1算法的输入信息长度在0到264比特之间,为了后续处理,会在信息的末尾添加多余的数据,使其长度为512比特的整数倍。512比特是SHA-1算法的输入分组长度。 填充过程: · 在消息末尾添加一个1比特的数值“1”,此时原创 2020-06-24 19:10:47 · 9436 阅读 · 0 评论 -
SHA 消息摘要算法应用详解
SHA 简介: SHA(Secure Hash Algorithm,安全散列算法)是消息摘要算法的一种,被广泛的认为是MD5的替代者。SHA算法家族目前有SHA-1、SHA-224、SHA-256、SHA-384和SHA-512五种算法,通常将后四种称为SHA-2算法。 SHA家族算法是在MD4算法的基础上演进而来,通过SHA算法同样能够得到一个固定长度的摘要信息。与MD系列算法不同的是:若输入的消息不同,则与其相对应的摘要信息的差异概率很高。SHA算法是FIPS所认证的五种安全杂凑算法。原创 2020-06-24 18:54:18 · 9044 阅读 · 0 评论 -
MD5 摘要算法应用详解
MD5简介: MD5是典型的消息摘要算法,是广泛使用的消息摘要算法之一,更是消息摘要算法首要代表。其前身包括MD2、MD4。MD算法家族针对源数据会产生一个128位的消息摘要。在一般应用场景下,会将128二进制摘要信息转换为十六进制,可以得到一个32位的十六进制字符串。 MD5的发展经历了MD2、MD4系列算法: · MD2:1989年,RSA的发明人之一(罗纳德·李维斯特)开发了MD2算法。 1)首先对信息进行数据补位,使信息的字节长度是16的倍数。 2)以一个16位的检验和作为原创 2020-06-23 23:37:32 · 9822 阅读 · 0 评论 -
Base32 应用与原理解析
简介: Base32编码使用32个ASCII字符对任何数据进行编码,Base32与Base64的实现原理类似,同样是将原数据二进制形式取指定位数转换为ASCII码。首先获取数据的二进制形式,将其串联起来,每5个比特为一组进行切分,每一组内的5个比特可转换到指定的32个ASCII字符中的一个,将转换后的ASCII字符连接起来,就是编码后的数据。 字典: Base32依赖更小的字典,Base32编码时每5个字符为一个分组,字典的长度为25 + 1=33。 Base32通用的字典定义如下:原创 2020-06-23 23:34:16 · 14842 阅读 · 0 评论 -
Base16 应用与原理解析
简介: Base16编码使用16个ASCII字符对任何数据进行编码,Base16与Base64的实现原理类似,同样是将原数据二进制形式取指定位数转换为ASCII码。首先获取数据的二进制形式,将其串联起来,每4个比特为一组进行切分,每一组内的4个比特可转换到指定的16个ASCII字符中的一个,将转换后的ASCII字符连接起来,就是编码后的数据。 字典: Base16依赖更小的字典,Base16编码时每4个字符为一个分组,字典的长度为24=16,字典值如下:ValueEncoding原创 2020-06-23 23:31:27 · 11315 阅读 · 0 评论 -
Base64 应用及原理解析
Base64由来: Base64算法最早应用于解决电子邮件传输的问题。在早期,由于“历史问题”,电子邮件只允许ASCII码字符。如果要传输一封带有非ASCII码字符的电子邮件,当通过有“历史问题”的网关时就可能出现问题。这个网关很可能会对这个非ASCII码字符的二进制位做调整,即将这个非ASCII码的8位二进制码的最高位置为0。此时用户收到的邮件就会是一封纯粹的乱码邮件。基于这个原因产生了Base64算法。 Base64定义: 根据RFC2045、RFC4648规定,Base64由64个AS原创 2020-06-23 00:13:00 · 9791 阅读 · 0 评论