文档章节

使用装饰设计模式加密数据

凯哥学堂
 凯哥学堂
发布于 2017/07/17 18:55
字数 232
阅读 4
收藏 0

使用装饰设计模式加密数据:

package com.zs.JiaJiE09;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
 * 使用装饰设计模式把数据取反进行加密解密
 * Key方法为钥匙
 *
 * @author LZG
 *
 */

public class JMOutputStream extends OutputStream{
/**
 * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com 

 * @author 小沫
 */

	private int key;
	private OutputStream output;
	public JMOutputStream(OutputStream output){
		this.output=output;
		
	}
	public void Key(int key){
		this.key=key;
	}
	
	public void write(int b) throws IOException {
		output.write(~b+key);
	}
	
	
	public void write(byte[] b, int off, int len) throws IOException {
		for (int i = off; i < len; i++) {
			output.write(~b[i]+key);
		}
	}

	public void write(byte[] b) throws IOException {
		for (int i = 0; i < b.length; i++) {
			output.write(~b[i]+key);
		}
	}
	
}

测试类:

package com.zs.JiaJiE09;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {
/**
 * 更多资料欢迎浏览凯哥学堂官网:http://kaige123.com 

 * @author 小沫
 */

	public static void main(String[] args) throws IOException{
		
		
		FileInputStream fin= new FileInputStream("e:/test/aa.txt");
		
		JMOutputStream fout = new JMOutputStream(new FileOutputStream("d:/test/aa111.txt"));
		fout.Key(1402);
		byte[] b = new byte[1024];
		
		while(fin.available()!=0){
			int len = fin.read(b);
			fout.write(b, 0, len);
		}
		
		fin.close();
		fout.close();
	}
}

© 著作权归作者所有

共有 人打赏支持
凯哥学堂
粉丝 16
博文 313
码字总数 278634
作品 0
东城
程序员
JavaScript常用设计模式

设计模式 设计模式是一种在长时间的经验与错误中总结出来可服用的解决方案。 设计模式主要分为3类: 创建型设计模式:专注于处理对象的创建 Constructor构造器模式,Factory工厂模式,Singl...

a独家记忆
07/13
0
0
JAVA基础再回首(二十六)——面向对象思想设计原则、设计模式、简单工厂模式、工厂方法模式、单例设计模式之饿汉式和懒汉式、Runtime类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m366917/article/details/52717096 JAVA基础再回首(二十六)——面向对象思想设计原则、设计模式、简单工厂模...

Aduroidpc
2016/10/01
0
0
我的Java设计模式-代理模式

写完上一篇之后有小伙伴问我有没有写过代理模式,想看看我的理解。原本我的设计模式系列是按照创建型-行为型-结构型的顺序写下去的,既然小伙伴诚心诚意了,我就大发慈悲的穿插一篇代理模式。...

Jet啟思
2017/11/29
0
0
你需要了解的23种JavaScript设计模式

为什么要学习设计模式? 在许多访谈中,你可能会遇到很多面向对象编程中的接口,抽象类,代理和以及其他与设计模式相关的问题。 一旦了解了设计模式,它会让你轻松应对任何访谈,并可以在你的...

java高级架构牛人
06/02
0
0
Java之23种设计模式解析(二)

B、结构模式(7 种) 我们接着讨论设计模式,上篇文章我讲完了 5 种创建型模式,这章开始,我将讲下 7 种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模...

wersdffg
2015/02/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
54分钟前
4
1
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部