密码学
Legolas~
这个作者很懒,什么都没留下…
展开
-
用java实现3DES加密解密算法
3DES加密也称三重加密,其底层加密算法与DES相同,只不过它的密钥长度是168位。由于在DES加密算法中,64位密钥中每一个字节的第8位是奇偶校验位,所以每个字节中只有后7位起密钥作用,实际是56位密钥长度。但是在3DES加密算法中,需要三个这样的密钥长度才能实现三重加密操作,所以3DES的密钥长度是56✖3=168,算上每个字节的奇偶校验位,则应该输入的密钥长度是168+24=192,即24个...原创 2019-10-24 21:08:24 · 4978 阅读 · 1 评论 -
用java实现DES解密
DES解密是加密的逆过程。对于DES加密过程可以用以下数学公式来描述:其中,Li和Ri是当前进行加密操作的明文的左32位和右32位,而Li-1和Ri-1是前一次进行操作的明文的左32位和右32位。Ki是64位密钥经过算法产生的子密钥。而解密过程可以用如下数学公式来描述:由此可以看出,DES的解密操作是加密操作的反向逆过程。对于第二个公式可以做如下推导:上述最后一行式子经过化简发现等式左...原创 2019-10-23 20:16:50 · 1495 阅读 · 0 评论 -
Base64的原理
Base64是网络上最常见的用于传输8位字节码即一个字节长度的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。Base64要求把每3个8位的字节转换成4个6位的字节(38=46=24),然后4个6位的字节高位补两个零变成4个8位的字节。Base64编码表如下图所示:用一个简单的例子来说明一下Base64编码表的原理:1.输入的字符串字符个数是3的整数倍例如输入...原创 2019-10-22 14:18:22 · 790 阅读 · 1 评论 -
用java实现DES加密操作
这里只给出java源码,具体的DES编码原理可以参照武汉大学编写的《密码学引论》一书。注意,程序中对加密后的明文即密文按照Base64进行编码,这样可以防止密文出现乱码的现象。import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;import javax.crypto.*;import javax.crypto.spec....原创 2019-10-22 10:49:58 · 1446 阅读 · 0 评论 -
用java实现利用Vigenre方阵对明文进行加密解密
Vigenre密码使用26个密文字母表,它们依次把明文字母表循环右移0,1,2,……,25位的结果。我们选用一个词组或者短语作为密钥,以密钥字母控制使用哪一个密文字母表。把26个密文字母表排在一起称为Vigenre方阵。由此可知,Vigenre是一个26*26的方阵。Vigenre密码的代替规则是用明文字母在Vigenre方阵中的列和密钥字母在Vigenre方阵中的行的交点处的字母来代替该明文字...原创 2019-10-17 20:30:02 · 625 阅读 · 0 评论