导航:首页 > 文档加密 > 异或加密已知密文如何求密钥

异或加密已知密文如何求密钥

发布时间:2023-07-07 19:48:50

❶ 已知原文和密文求解加密方法

这个涉及密钥,如果有密钥的话可以对加密算法进行枚举.

❷ 若已知某仿射密码加密明文字符为e、h的对应密文字符为f、w,试求仿射密码的密钥K

1、密钥是K=bp,设密钥k1,k2.f=(e+k1)mod26,w=(h+k2)mod26, e=4,f=5,h=7,w=22,代入后可以解。按字母顺序,a-z相当于0-25。
2、密钥为xr。计算公式f=(e*k1+k2)mod26,w=(e*k1+k2)mod,k1取值范围是0-25,且与26互质的数(即1,3,5,7,9...25,共13个,k2取值范围0-25。

❸ 如何利用异或运算进行简单加密解密

利用“^”异或运算对字符串进行加密
思路:1.先创建字符串输入的Scanner;
2.通过char[] array = password.toCharArray();// 获取字符数组;
3.遍历字符数组,按目前理解要用到遍历:数组所有元素进行访问,比如你要输出数组里所有的信息时,就要用到
4.进行异或运算
按位做“异或”运算是:位值相同得1,不同得0
例如:
< 加密过程:>
原解释的二进制为 1 1 0 0 ----原文
设定的key的二进制为 0 1 1 0 ----密匙
两者做“异或”结果为 0 1 0 1 ----密文
< 解密过程:>
0 1 0 1----密文
0 1 1 0----密匙
两者“异或”就得到了原文 1 1 0 0 ----原文
详细代码:
package com.lixiyu;
import java.util.Scanner;
public class Example {
public static void main(String[] args){
Scanner sca=new Scanner(System.in);
System.out.println("请输入一个英文字符串或解密字符串");
String line=sca.nextLine();//获取用户输入信息
char[] array=line.toCharArray();//获取字符数组
for (int i=0;i<array.length;i++){//历遍字符数组
array[i]=(char) (array[i]^20000);//对数组每个元素进行异或运算
}
System.out.println("加密解密结果如下:");
System.out.println(new String(array));//输出密钥
}
}
异或运算:
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
字符'A' 的ASCII编码为65 : 00000000 01000001
取整数7 : 00000000 00000000 00000000 00000111
XOR运算后 : 00000000 00000000 00000000 01000110
简单加密算法代码如下 :
public class Test {
public static final int KEY = 7;
public static void main(String[] args) {
String str = "Hello World!";
StringBuffer str2 = new StringBuffer(); //存储加密后的字符串
StringBuffer str3 = new StringBuffer(); //存储解密后的字符串
//加密过程
for(int i=0;i<str.length();i++)
{
char c = (char)(str.charAt(i) ^ KEY);
str2.append(c);
}
//解密过程
for(int i=0;i<str2.length();i++)
{
char c = (char)(str2.charAt(i) ^ KEY);
str3.append(c);
}
System.out.println("原始 的字符串为:" + str);
System.out.println("加密后 的字符串为:" + str2);
System.out.println("解密后 的字符串为:" + str3);
}
}
输出:
原始 的字符串为:Hello World!
加密后 的字符串为:Obkkh'Phukc&
解密后 的字符串为:Hello World!

阅读全文

与异或加密已知密文如何求密钥相关的资料

热点内容
建立ftp文件夹命令 浏览:566
sha1withrsa算法 浏览:453
域名交易系统源码php 浏览:171
求解微分方程数值解的命令有哪些 浏览:626
程序员转时尚传媒 浏览:82
古拳谱pdf 浏览:42
一元二次方程无实数根的算法 浏览:352
程序员测试轻松吗 浏览:170
英雄联盟神魔怎么绑定服务器 浏览:982
音乐app怎么换音质 浏览:974
python进阶客户流失 浏览:280
华为荣耀10服务器地址 浏览:998
javastring相等判断 浏览:411
程序员考研究生学校 浏览:935
java卡顿 浏览:500
编程软件怎么运行zip文件 浏览:505
单片机怎么做组态 浏览:899
android参考文献外文 浏览:684
铜电极电流效率的算法 浏览:144
短信内存已满怎么处理安卓 浏览:314