資源簡介
JavaDES通過秘鑰加密解密Demo

代碼片段和文件信息
package?com.cxq.tools;
import?java.io.BufferedReader;
import?java.io.BufferedWriter;
import?java.io.File;
import?java.io.FileInputStream;
import?java.io.FileNotFoundException;
import?java.io.FileOutputStream;
import?java.io.IOException;
import?java.io.InputStream;
import?java.io.InputStreamReader;
import?java.io.OutputStream;
import?java.io.OutputStreamWriter;
import?java.util.ArrayList;
import?java.util.Enumeration;
import?java.util.List;
import?java.util.Properties;
import?java.util.Random;
public?class?DataServiceDecrypt?extends?Properties?{
private?static?final?long?serialVersionUID?=?1L;
private?ListEnumerationAdapterject>?keyList?=?new?ListEnumerationAdapterject>();
public?DataServiceDecrypt()?{
}
/**
?*?從指定路徑加載信息到Properties
?*?
?*?@param?path
?*/
public?DataServiceDecrypt(String?path)?{
try?{
InputStream?is?=?new?FileInputStream(path);
this.load(is);
}?catch?(FileNotFoundException?e)?{
e.printStackTrace();
throw?new?RuntimeException(“指定文件不存在!“);
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
/**
?*?重寫put方法,按照property的存入順序保存key到keyList,遇到重復的后者將覆蓋前者。
?*/
@Override
public?synchronized?object?put(object?key?object?value)?{
if?(keyList.contains(key))?{
keyList.remove(key);
}
keyList.add(key);
return?super.put(key?value);
}
/**
?*?獲取Properties中key的有序集合
?*?@return
?*/
public?Listject>?getKeyList()?{
??????return?keyList;
???}
/**
?*?保存Properties到指定文件,并指定對應存放編碼
?*?@param?path
?*????????????指定路徑
?*?@param?charset
?*????????????文件編碼
?*/
public?void?store(String?path)?{
??????if?(path?!=?null?&&?!““.equals(path))?{
?????????try?{
????????????OutputStream?os?=?new?FileOutputStream(path);
????????????BufferedWriter?bw?=?new?BufferedWriter(new?OutputStreamWriter(os));
????????????this.store(bw?null);
????????????bw.close();
?????????}?catch?(FileNotFoundException?e)?{
????????????e.printStackTrace();
?????????}?catch?(IOException?e)?{
????????????e.printStackTrace();
?????????}
??????}?else?{
?????????throw?new?RuntimeException(“存儲路徑不能為空!“);
??????}
???}
/**
?*?重寫keys方法
?*/
@Override
???public?synchronized?Enumerationject>?keys()?{
??????keyList.reset();
??????return?keyList;
???}
/**
?*?ArrayList到Enumeration的適配器
?*/
private?static?class?ListEnumerationAdapter?extends?ArrayList
implements
Enumeration?{
private?static?final?long?serialVersionUID?=?1L;
private?int?index?=?0;
public?boolean?hasMoreElements()?{
?????????return?index? ??????}
public?T?nextElement()?{
if?(this.hasMoreElements())?{
return?this.get(index++);
}
return?null;
}
/**
?*?重置index的值為0,使得Enumeration可以繼續從頭開始遍歷
?*/
public?void?reset()?{
this.index?=?0;
}
}
private?static?char?movePosition(char?cSrc?int?nLen)?{
int?nSrc?=?0;
if?(cSrc?>=?‘?‘?&&?cSrc?<=?‘:‘)
nSrc?=?cSrc?-?32;
if
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5516??2017-04-19?11:33??DataServiceDecryptjiemi.java
?????文件???????6286??2017-04-19?11:36??DataServiceEncryptjiami.java
-----------?---------??----------?-----??----
????????????????11802????????????????????2
評論
共有 條評論