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