按照你同学的加密算法,只对英文小写字母进行了加密,原文和密文的对应关系如下:
创新互联作为成都网站建设公司,专注成都网站建设、网站设计,有关成都定制网页设计方案、改版、费用等问题,行业涉及酒楼设计等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
原文: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();//再解密
}
}
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.util.*; //Date needed
import java.io.PrintWriter;
public class NotePad extends JFrame
{
JTextArea jta;
class newl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jta.setText("");
}
}
class openl implements ActionListener
{ public void actionPerformed(ActionEvent e)
{
JFileChooser jf=new JFileChooser();
jf.showOpenDialog(NotePad.this);
}
}
//保存文件的监听
class savel implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JFileChooser jf = new JFileChooser();
jf.showSaveDialog(NotePad.this);
}
}
//打印的监听 ?
class printl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
// PrintWriter p = new PrintWriter(NotePad.this);
}
}
//退出记事本的监听
class exitl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);//退出
}
}
//拷贝的监听
class copyl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jta.copy();
}
}
//粘贴的监听
class pastel implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jta.paste();
}
}
//剪切的监听
class cutl implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
jta.cut();
}
}
//查找的监听
//添加日期的监听
class datel implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Date d=new Date();
jta.append(d.toString());
}
}
//构造函数
public NotePad()
{
jta=new JTextArea("",24,40);
JScrollPane jsp=new JScrollPane(jta);
JMenuBar jmb=new JMenuBar();
JMenu mFile=new JMenu("File");
JMenu mEdit=new JMenu("Edit");
JMenuItem mNew=new JMenuItem("New",KeyEvent.VK_N);
mNew.addActionListener(new newl());
mFile.add(mNew);
JMenuItem mOpen=new JMenuItem("Open",KeyEvent.VK_O);
mOpen.addActionListener(new openl());
mFile.add(mOpen);
JMenuItem mSave=new JMenuItem("Save");
mSave.addActionListener(new savel());
mFile.add(mSave);
mFile.addSeparator(); //添加分割线
JMenuItem mPrint = new JMenuItem("Print");
mPrint.addActionListener(new printl());
mFile.add(mPrint);
mFile.addSeparator(); //添加分割线
JMenuItem mExit=new JMenuItem("Exit");
mExit.addActionListener(new exitl());
mFile.add(mExit);
mFile.setMnemonic(KeyEvent.VK_F);
//编辑菜单的子菜单的处理
JMenuItem jmi;
jmi=new JMenuItem("Copy");
jmi.addActionListener(new copyl());
mEdit.add(jmi);
jmi=new JMenuItem("Cut");
jmi.addActionListener(new cutl());
mEdit.add(jmi);
jmi=new JMenuItem("Paste");
jmi.addActionListener(new pastel());
mEdit.add(jmi);
mEdit.addSeparator(); //添加分割线
jmi=new JMenuItem("Find");
mEdit.add(jmi);
jmi=new JMenuItem("FindNext");
mEdit.add(jmi);
mEdit.addSeparator();
jmi=new JMenuItem("Select All");
mEdit.add(jmi);
jmi=new JMenuItem("Date/Time");
jmi.addActionListener(new datel());
mEdit.add(jmi);
jmb.add(mFile);
jmb.add(mEdit);
this.setJMenuBar(jmb);
this.getContentPane().add(jsp);
this.setSize(200,200);
this.setVisible(true);
}
//主函数,程序入口点
public static void main(String s[])
{
new NotePad();
}
}
用记事本写完代码后运行方法如下:
1、用浏览器打开用记事本编写的代码
新建“文本文档”后,鼠标右键点击该文本文档,在菜单栏的“打开方式”选择“用记事本打开”,也可以设置默认打开方式为“记事本”;用记事本打开文本文档后,直接在该文档内根据自己的需要输入想要编辑的网页代码。
2、记事本写java代码怎么运行
首先,需要安装jdk并配置环境变量。然后,在命令行中,用javac命令编译用记事本编写的代码。下一步,在命令行中,用java命令执行编译后的结果。
代码是什么
代码是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括唯一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。
计算机源代码最终目的是将人类可读文本翻译成为计算机可执行的二进制指令,这种过程叫编译,它由通过编译器完成。源代码就是用汇编语言和高级语言写出来的地代码。目标代码是指源代码经过编译程序产生的能被 cpu直接识别二进制代码。
可执行代码就是将目标代码连接后形成的可执行文件,当然也是二进制的。
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
public class Ttex {
BufferedImage bi = new BufferedImage(300, 200, BufferedImage.TYPE_INT_RGB);
public Ttex(String text) {
Graphics gr = bi.createGraphics();
gr.setColor(Color.white);
gr.fillRect(0, 0, bi.getWidth(), bi.getHeight());
gr.setColor(Color.GRAY);
gr.drawString(text, 10, 10);
}
/**
* 根据地址来保存文件
*
* @param dir
* 文件地址
*/
private void Save(String dir) {
BufferedImage image = bi;
// 得到系统支持的图片写入器
Iterator it = ImageIO.getImageWritersBySuffix("jpg");
ImageWriter iw = null;
if (it.hasNext()) {
try {
ImageOutputStream imgOut = ImageIO
.createImageOutputStream(new File(dir));
iw = (ImageWriter) it.next();
iw.setOutput(imgOut);
IIOImage iioi = new IIOImage(image, null, null);
iw.write(iioi);
imgOut.close();
iw.dispose();
} catch (IOException e1) {
}
}
}
public static void main(String[] args) {
Ttex m = new Ttex("0123456789");
m.Save("D:/1.jpg");
}
}