问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JAVA解密文本代码的问题。可以运行追加200分。

发布网友 发布时间:2022-05-20 12:18

我来回答

3个回答

热心网友 时间:2023-10-19 04:48

按照你同学的加密算法,只对英文小写字母进行了加密,原文和密文的对应关系如下:

原文:a b c d e f g h i j k l m n o p q r s t u v w x y z

密文:f g h i j k l m n o p q r s t u v w x y z { | } a b

怎么得到上述关系呢,其实是所有的字符都有一个对应的ASCII码,相关ASCII码如下:

可以看到v的ASCII码为118,+5为123,所以变为{

97 a

98 b

99 c

100 d

101 e

102 f

103 g

104 h

105 i

106 j

107 k

108 l

109 m

110 n

111 o

112 p

113 q

114 r

115 s

116 t

117 u

118 v

119 w

120 x

121 y

122 z

123 {

124 |

125 }

下面为解密代码

import java.io.*;

class FileIo2 {
public static void main(String args[]) {
// 声明输入流引用
FileInputStream fis = null;
// 声明输出流引用
FileOutputStream fos = null;
try {
// 生成代表输入流的对象
fis = new FileInputStream("D:/test1.txt");
// 生成代表输出流的对象
fos = new FileOutputStream("D:/test2.txt");
// 生成一个字节数组
byte[] buffer = new byte[100];
// 调用输入对象的read方法,读取字节数组的数据
int temp = fis.read(buffer, 0, buffer.length);
for (int i = 0; i < temp; i++) {
if (buffer[i] >= 'f' && buffer[i] <= 'z') {
buffer[i] -= 5;
System.out.printf("%c", buffer[i]);
}else if (buffer[i] == 'a') {
buffer[i] = 'y';
System.out.printf("%c", buffer[i]);
}else if (buffer[i] == 'b') {
buffer[i] = 'z';
System.out.printf("%c", buffer[i]);
}else if(buffer[i] == '{'){
buffer[i] = 'v';
System.out.printf("%c", buffer[i]);
}else if(buffer[i] == '|'){
buffer[i] = 'w';
System.out.printf("%c", buffer[i]);
}else if(buffer[i] == '}'){
buffer[i] = 'x';
System.out.printf("%c", buffer[i]);
}

}

// System.out.printf("temp=%d",temp);
// temp临时定义用来接收read返回值类型,从而判断写入多少数据
fos.write(buffer, 0, temp);
} catch (Exception e) {
System.out.println(e);
}
}
}

 

下面这段代码是既有加密也有解密:

import java.io.*;

class FileIo2 {
public static void jiemi(){
// 声明输入流引用
FileInputStream fis = null;
// 声明输出流引用
FileOutputStream fos = null;
try {
// 生成代表输入流的对象
fis = new FileInputStream("D:/test1.txt");
// 生成代表输出流的对象
fos = new FileOutputStream("D:/test2.txt");
// 生成一个字节数组
byte[] buffer = new byte[100];
// 调用输入对象的read方法,读取字节数组的数据
int temp = fis.read(buffer, 0, buffer.length);
for (int i = 0; i < temp; i++) {
if (buffer[i] >= 'f' && buffer[i] <= 'z') {
buffer[i] -= 5;
System.out.printf("%c", buffer[i]);
}else if (buffer[i] == 'a') {
buffer[i] = 'y';
System.out.printf("%c", buffer[i]);
}else if (buffer[i] == 'b') {
buffer[i] = 'z';
System.out.printf("%c", buffer[i]);
}else if(buffer[i] == '{'){
buffer[i] = 'v';
System.out.printf("%c", buffer[i]);
}else if(buffer[i] == '|'){
buffer[i] = 'w';
System.out.printf("%c", buffer[i]);
}else if(buffer[i] == '}'){
buffer[i] = 'x';
System.out.printf("%c", buffer[i]);
}

}

// System.out.printf("temp=%d",temp);
// temp临时定义用来接收read返回值类型,从而判断写入多少数据
fos.write(buffer, 0, temp);
} catch (Exception e) {
System.out.println(e);
}
}
public static void jiami(){
// 声明输入流引用
FileInputStream fis = null;
// 声明输出流引用
FileOutputStream fos = null;
try {
// 生成代表输入流的对象
fis = new FileInputStream("D:/test.txt");
// 生成代表输出流的对象
fos = new FileOutputStream("D:/test1.txt");
// 生成一个字节数组
byte[] buffer = new byte[100];
// 调用输入对象的read方法,读取字节数组的数据
int temp = fis.read(buffer, 0, buffer.length);
for (int i = 0; i < temp; i++) {
if (buffer[i] >= 'a' && buffer[i] <= 'x') {
buffer[i] += 5;
// buffer[i]--;

System.out.printf("%c", buffer[i]);
}

if (buffer[i] == 'y') {
buffer[i] = 'a';
System.out.printf("%c", buffer[i]);
}
if (buffer[i] == 'z') {
buffer[i] = 'b';
System.out.printf("%c", buffer[i]);
}

}

// System.out.printf("temp=%d",temp);
// temp临时定义用来接收read返回值类型,从而判断写入多少数据
fos.write(buffer, 0, temp);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String args[]) {
jiami();//先加密
jiemi();//再解密
}
}

热心网友 时间:2023-10-19 04:48

import java.io.*;
public class Main{
public static void main(String args[]){
//声明输入流引用
FileInputStream fis = null;
//声明输出流引用
FileOutputStream fos = null;
try{
//生成代表输入流的对象
fis = new FileInputStream("D:/java/ji.txt");
//生成代表输出流的对象
fos = new FileOutputStream("D:/java/jia1.txt");
//生成一个字节数组
byte [] buffer = new byte[100];
//调用输入对象的read方法,读取字节数组的数据
int temp = fis.read(buffer,0,buffer.length);
for(int i=0;i<temp;i++)
{
if(buffer[i]>='a' + 5 && buffer[i] <= 'x' + 5)
{
buffer[i]-=5;
//buffer[i]--;

System.out.printf("%c",buffer[i]);
}

if(buffer[i]=='a')
{
buffer[i]='y';
System.out.printf("%c",buffer[i]);
}
if(buffer[i]=='b')
{
buffer[i]='z';
System.out.printf("%c",buffer[i]);
}

}
//System.out.printf("temp=%d",temp);
//temp临时定义用来接收read返回值类型,从而判断写入多少数据
fos.write(buffer,0,temp);
}
catch(Exception e){
System.out.println(e);
}

}
}
改完鸟。。。

热心网友 时间:2023-10-19 04:49

解不出来把 , t,u 跟 y,z分不出来
java base64解密乱码问题 代码如下:

private String getPictureString() { String upload = ""; try { FileInputStream in = new FileInputStream(fileName); byte[] ba = new byte[in.available()]; in.read(ba); in.close(); upload = new String(android.util.Base64.encode(ba, android.util.Base...

java 文本文件的加密解密

最后用流写回去即可.比如 "我" 这个字的ascii码是\u6211,加1移位成\u6212(戒),这样一片文章就面目全非了.当然移位成什么看你自己的移位算法,然后再转成汉字写回去.package test;import java.io.IOException;public class Native2ascii { private static final String java_path = "G:\\Java\\jd...

如何防止程序员反编译?

说得有点道理,但有两个问题:1、使用optimize对JDK及环境要求较高,容易造成混淆后的代码无法正常运行;2、这种方式其实还是混淆,JD反编译有点问题,可以有更强悍的工具,矛盾哲学在哪儿都是存在的^_^)。那如何能做到我的class代码无法被人反编译呢?那就需要我们下面的“加密class”! 加密class 在说加密class之前,我...

wps中复制不了图片

不仅如此,WPS Office 2005还可以直接打开带有宏代码的DOC文档,这解除了MS Office 高级用户在文件传输过程中的后顾之忧。加解密文件通道的打通和可直接运行VBA宏代码这两个深度兼容性的实现,对于其他Office软件来说,目前还是一个难于突破的技术瓶颈。WPS表格可以跨Excel文件进行数据引用,若改变了被引用的XLS文件数据,WP...

如何有效防止Java程序源码被人偷窥?

我们可以用流行的加密工具加密应用 比如PGP(Pretty Good Privacy)或GPG(GNU Privacy Guard) 这时 最终用户在运行应用之前必须先进行解密 但解密之后 最终用户就有了一份不加密的类文件 这和事先不进行加密没有什么差别 Java运行时装入字节码的机制隐含地意味着可以对字节码进行修改 JVM每次装入类文件时都需要一个称...

java解密出错

你那个代码少得东西太多,我左试右试,都是错,也不知道你的初始值都是什么。给你写了一个加密解密的,希望对你有帮助。import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;public ...

请教:对Java类库jar文件,有什么好的防止反编译办法,最好是加密/解密方...

很久前做过一个项目,用很复杂的算法加密 class文件,然后在虚拟机载入前调用解密程序。用的是 jvmti。这样可以防止class loader被反编译导致加解密算法泄漏,应该算比较好的一种解决方案了。

Java全系工程源码加密,防止反编译

ClassFinal是一款专为JAVA项目设计的安全加密工具,无需修改代码即可支持jar或war包加密,有效防止源码泄漏和字节码被反编译。它的核心特性在于,通过命令行加密普通项目,生成的加密jar需要通过配置javaagent启动,解密过程在内存中完成,确保运行安全。IDEA中启动加密jar也变得简单,只需在运行配置中添加相应的...

JAVA 文本文件用异或算法进行加密解密的程序代码!

import java.io.FileOutputStream;public class XorExample { public static final byte XOR_CONST = 0X12;public static void main(String[] args) throws Exception { File src = new File("level1.txt");File dest = new File("level2.txt");File dest2 = new File("level3.txt");xor...

java的MD5withRSA算法可以看到解密的内容么?

&lt;二&gt;. 使用BASE64进行加密/解密:? ? ? ? 使用BASE64算法通常用作对二进制数据进行加密,加密之后的数据不易被肉眼识别。严格来说,经过BASE64加密的数据其实没有安全性可言,因为它的加密解密算法都是公开的,典型的防菜鸟不防程序猿的呀。?经过标准的BASE64算法加密后的数据,?通常包含/、+、=等特殊符号,不适合...

怎么用文本文档运行代码 用文本文档写代码运行不了 py追加文本到文件 linux追加多行文本 文本文档代码大全简单 文本文档炫酷代码 文本文档爱心代码 文本文档跳舞代码 电脑文本文档代码
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
婷美矿物泉补水精华的滋润度怎么样? 婷美矿物泉补水睡眠面膜的保质期 求一部美国地理/灾难/科幻片名,明珠台有播过 日本有哪些抗皱效果显著的眼霜值得入手? ...回到中国找寻这位中国母亲的电影名字叫什么。谢谢 校园卡浏览不良网站会受到什么惩罚? 校园卡会监控浏览记录吗? 济南现在治疗慢性鼻炎的方法有哪些?最好的是什么?? 《结婚后我们恋爱吧!》最新txt全集下载 搞笑谐音! 帮忙做英语选择题吧 房子在待售的英文句子 那些待售的毛衣 。 用英语怎么说 请大家翻译一些词组(用英语) 英文,用什么表示已经售出 比如说待售是for sale,售出是什么 出售与待售用英语怎么说! 待售用英语怎么写 老厨师做菜出现问题怎么办 QQ怎么一直加不上群呀? qq为什么加不了群聊? 急!134斤减到110斤,一个月的时间 几天洗一次头合适?还是天天洗比较好?? 我的一位朋友从日本旅游回来,给我带了一瓶Newhada的瘦身霜。我想了解一下,也没有人用过啊! 怎样辨别娇韵诗的纤体精华霜的真伪?它的保质期是多久? 娇韵诗的纤体霜,也叫(脂肪粉碎机)怎样用效果最好,还有搭配别款一起用吗?全身都可以用吗? 两天洗一次头好还是三天洗一次好?为什么? 我想问下纤体霜燃脂膏有用嘛?有知道的么? 樱桃树属于什么林? 樱桃树好种吗? 男27岁学什么技术好 Java加密规则 = (整数*10+5)/2+3.1415的解密代码。 当一个女孩不回你短信的时候,如何找话题与她继续聊天 小米出100万征集壁纸,你怎么看,觉得什么样的人或作品可以入围? 求一套1920*1080的电脑壁纸内容好像是26个字母诠释爱情的一套主题壁纸十分感谢1204497426@qq.com 大自然墙纸怎么样? 壁纸怎么搭配 圣诞节在商场门口听到一首歌,挺好听,不知道叫什么名字,有人知道吗? Adobe Premiere Pro英文版哪有下载? 2001年出生,6月7日(旧历),7月10日(新历)请问是什么星座? 属蛇2001年农历6月初7出生是什么星座 我是2001年农历6月初7出生是什么星座 6月7日的上升星座太阳星座月亮星座分别是 (星盘解读)注意:懂格局的能把问题说清楚的请进!! 欢迎解盘高手!_百度... 请高手分析星盘,谢谢(优质回答可以加分) 我是2001年6月16日早7点出生的双子座女生,我的上升星座,太阳星座和月亮星座是什么?是什么?是什么? 高分求高手分析星盘 谢谢哈 我出生那年是00年6月7号我是什么星座 占星高手帮帮忙!详细分析一下我的命盘!谢谢! 麻烦给我看一下星盘! &quot;去春游吧”日语怎么说?