密码学算法
文章平均质量分 53
Fighting_No1
这个作者很懒,什么都没留下…
展开
-
(2)Playfair密码算法的Java实现
采用多字母一起加密最著名的密码体制是Playfair密码,其将明文中的双字母组合作为一个单元对待,并将这些单元转换为密文的双字母组合。 编写密文的步骤: 1.选取一个英文字作密钥。除去重复出现的字母。将密玥的字母逐个加入5×5的矩阵内, 剩下的空间将未加入的英文字母依a-z的顺序加入。(将I和J视作同一字。JOY -> IOY) 2.将要加密的讯息分成两个一组。若组内的字母相同,将 X原创 2016-03-08 16:29:11 · 4633 阅读 · 1 评论 -
(1)Caesar密码算法的Java实现
利用Caesar密码算法对英文明文进行加密解密: **一般化的恺撒加密算法为: C = E(k, p) = (p + k) mod 26 一般化的恺撒解密算法为: p = D(k, C) = (C - k) mod 26**/** * 凯撒密码 * 英文字母26种方式 * @author Angela *//** * 一般化的恺撒加密算法为: C = E(k, p) = (p + k原创 2016-03-08 15:57:40 · 1616 阅读 · 0 评论 -
(3)Vigenere密码算法的Java实现
Vigenère密码是多表代换密码中的一种,其思想是:明文的每个字母使用不同k的凯撒加密。 我们可以构造一个维吉尼亚密码表的矩阵,最左边为密钥字母,最上面为明文,加密过程很简单:给定密钥字母x和明文字母y,密文字母为位于x行和y列的字母。 其实,如果假设能被加密的字符有N个,如果把这N个字符建成一个环, 那么加密过程就是模N的过程,即,C(i)=(K(i)+P(i))modN,其中K、C、P分别原创 2016-03-08 16:39:27 · 7068 阅读 · 0 评论 -
(4)简单置换
置换技术 密钥即为置换和逆置换。 置换为:[2,7,4,6,1,3,5](2表示当前位置用第2个字母置换,其他类推) 逆置换为:[5,1,6,3,7,4,2]import java.util.ArrayList;import java.util.List;/** * 置换加密技术,密钥为置换和逆置换 * 通过根据置换表改变明文字符串的排列顺序 * @author Angela */原创 2016-03-28 10:31:39 · 2241 阅读 · 0 评论 -
(5)复杂置换
即:加密时把明文一行一行地转换成矩阵(密钥的长度即为矩阵的列数),然后按照密钥(置换表)改变列的次序,按列读取,构成密文;解密时把密文一列一列地转换成矩阵(密钥的长度即为矩阵的列数),然后按照密钥(逆置换表)改变列的次序,按行读取,构成明文。 具体Java实现代码如下:import java.util.ArrayList;import java.util.List;/** * 一种更复杂的置换原创 2016-03-28 10:44:06 · 604 阅读 · 0 评论