真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java流密碼代碼實(shí)現(xiàn) javaio流代碼

急求:流密碼的算法,用JAVA

Java中的IO流使用的是Decorator設(shè)計模式

創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、重慶小程序開發(fā)、公眾號商城、等建站開發(fā),創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。

所以只要寫兩個裝飾者類

覆蓋write和read方法

在write前和read后對原數(shù)據(jù)進(jìn)行一些處理(比如異或操作)就可以了

我吃過飯寫個貼上來……

--------------------------------------------------------

// EncryptStream.java

import java.io.IOException;

import java.io.OutputStream;

/**

*

* 類型描述 加密流

*

* @since 2009-5-22

* @author 何智剛

*

*/

public class EncryptStream extends OutputStream {

private byte key;

private OutputStream out;

/**

*

* @param key 密鑰

* @param in 需要加密的流

*/

public EncryptStream(byte key, OutputStream out) {

this.key = key;

this.out = out;

}

@Override

public void write(int b) throws IOException {

out.write(b ^ key);

}

}

// DecryptStream.java

import java.io.IOException;

import java.io.InputStream;

/**

*

* 類型描述 解密流

*

* @since 2009-5-22

* @author 何智剛

*

*/

public class DecryptStream extends InputStream {

private byte key;

private InputStream in;

/**

*

* @param key 密鑰

* @param in 需要解密的流

*/

public DecryptStream(byte key, InputStream in) {

this.key = key;

this.in = in;

}

@Override

public int read() throws IOException {

return in.read() ^ key;

}

@Override

public int read(byte[] b, int off, int len) throws IOException {

byte[] temp = new byte[b.length];

int c = in.read(temp, off, len);

for (int i = 0; i b.length; i++) {

b[i] = (byte) (temp[i] ^ key);

}

return c;

}

}

// Client.java

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

public class Client {

public static void main(String[] args) throws Exception {

byte key = 25;

encryptFile("要加密的文件.dat", "加密過的文件.dat", key);

decryptFile("加密過的文件.dat", "解密出來的文件.dat", key);

}

/**

*

* 方法描述 加密文件

*

* @param src 要加密的文件的路徑

* @param des 加密過后的文件的存放路徑

* @param key 密鑰

* @throws Exception

*

* @變更記錄 2009-5-22 下午12:42:25 何智剛 創(chuàng)建

*

*/

public static void encryptFile(String src, String des, byte key)

throws Exception {

InputStream in = new FileInputStream(src);

OutputStream out = new EncryptStream(key, new FileOutputStream(des));

byte[] buf = new byte[8192];

int c;

while ((c = in.read(buf)) 0) {

out.write(buf, 0, c);

}

in.close();

out.flush();

out.close();

}

/**

*

* 方法描述 解密文件

*

* @param src 要解密的文件的路徑

* @param des 解密過后的文件的存放路徑

* @param key 密鑰

* @throws Exception

*

* @變更記錄 2009-5-22 下午12:43:04 何智剛 創(chuàng)建

*

*/

public static void decryptFile(String src, String des, byte key)

throws Exception {

InputStream in = new DecryptStream(key, new FileInputStream(src));

OutputStream out = new FileOutputStream(des);

byte[] buf = new byte[8192];

int c;

while ((c = in.read(buf)) 0) {

out.write(buf, 0, c);

}

in.close();

out.flush();

out.close();

}

}

-----------------------------------------------

我在例子里沒有用BufferedStream,而是自己創(chuàng)建了個byte[]做緩沖區(qū),因為這樣性能更好。用BufferedStream的話代碼會更簡單。

java 以流的形式解壓帶密碼的zip

可以使用 Runtime 直接調(diào)用 winRar 的命令行命令來解壓縮

注意:

1、winRar命令使用,在dos下輸入 unrar 就可以看到全部的命令說明。該命令在winRar的安裝目錄下

2、winRar命令行命令的路徑問題,也就是path。要么加入系統(tǒng)變量path中,要么在winRar的安裝目錄下執(zhí)行程序

以下是程序代碼,解壓 test.rar 到當(dāng)前目錄下,密碼123

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.InputStreamReader;

public class TestRunTime {

public static void main(String[] args) {

Runtime run = Runtime.getRuntime();

try {

Process p = run.exec("unrar e test.rar -p123");//執(zhí)行解壓縮命令

BufferedInputStream in = new BufferedInputStream(p.getInputStream());

BufferedReader inBr = new BufferedReader(new InputStreamReader(in));

String lineStr;

while ((lineStr = inBr.readLine()) != null)

System.out.println(lineStr);

// 檢查命令是否執(zhí)行失敗。

if (p.waitFor() != 0) {

if (p.exitValue() == 1)// p.exitValue()==0表示正常結(jié)束,1:非正常結(jié)束

System.err.println("命令執(zhí)行失敗!");

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

用JAVA代碼實(shí)現(xiàn)登錄名字與密碼

1.寫一個操作數(shù)據(jù)庫的通用DAO(假設(shè)為Dao.java),提供

·加載數(shù)據(jù)庫驅(qū)動和獲取數(shù)據(jù)庫連接的方法:void getConnection();

·執(zhí)行查詢的方法:ResultSet executeQuery(String sql);

·執(zhí)行更新的方法:Integer executeUpdate(String sql);

·關(guān)閉資源的方法:void releaseResource(Connection con);

2.在你的界面中把用戶名和密碼取出來

·username = yourTextField.getText();

·password = yourPasswordField.getText();

3.匹配

·驗證username、password是否是有效輸入值(例如:不能包含特殊字符,不能有注入嫌疑等)

·String sql = "select * from yourTable where username='"+username+"' and password='"+password+"'" ;

·Dao.executeQuery(sql):如果有結(jié)果說明合法,否則不合法。

不懂Connect 我


分享題目:java流密碼代碼實(shí)現(xiàn) javaio流代碼
分享網(wǎng)址:http://weahome.cn/article/doijhci.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部