免费获取
|
论文天下网
|
原创毕业论文
|
论文范文
|
论文下载
|
计算机论文
|
论文降重
|
毕业论文
|
外文翻译
|
免费论文
|
开题报告
|
心得体会
|
全站搜索
当前位置:
论文天下网
->
免费论文
->
计算机论文
软件工程”网络课程的设计(二)
此操作将列表从最后一个元素向前遍历到第二个元素,将随机选择的元素重复到当前位置。该元素从列表中随机选择,并运行在第一个元素到当前位置。
此方法在线性时间下工作。如果指定的项目不使用 RandomAccess 接口,并且是一个大列表,这避免了次要行为,这是由组织"Tidy Access"列表引起的。
private static Random r;
public static void shuffle(List list) {
if (r == null) {
r = new Random();
}
shuffle(list, r);
}
public static void shuffle(List list, Random rnd) {
int size = list.size();
if (size 1; i--)
swap(list, i-1, rnd.nextInt(i));
} else {
Object arr[] = list.toArray();
// Shuffle array
for (int i=size; i>1; i--)
swap(arr, i-1, rnd.nextInt(i));
// Dump array back into list
ListIterator it = list.listIterator();
for (int i=0; i<arr.length; i++) {
it.next();
it.set(arr[i]);
}
}
}
(2)DES加密算法
由于客观题的随机排列,使得试题的排列次序与数据库中有所不同。同时,考虑到通过逐条在数据库中查询来校验答案对数据库的压力过大,所以事先查询出试题的答案,然后根据打乱后的试题次序把正确答案拼成一个字符串,然后加密放到页面的隐藏域中。这样一来,当提交试题查看结果时不用再次查询数据库,只要把答案字符串解密,然后分割成数组校验即可。
这里的加解密采用了DES算法。
DES算法的入口参数有三个:Key、Data、Mode。其中Key为8字节共64位,是DES算法的工作密钥;Data也为8字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。
DES算法是这样工作的:如Mode为加密,则用Key去把数据Data进行加密,生成Data的密码形式(64位)作为DES的输出结果;如Mode为解密,则用Key去把密码形式的数据Data解密,还原为Data的明码形式(64位),作为DES的输出结果。在通信网络的两端,双方约定一致的Key,在通信的源点用Key对核心数据进行DES加密,然后以密码形式在公共通信网(如电话网)中传输到通信网络的终点。数据到达目的地后,用同样的Key对密码数据进行解密,便再现了明码形式的核心数据。这样便保证了核心数据(如PIN、MAC等)在公共通信网中传输的安全性和可靠性。
下面是加密算法的部分代码(解密原理类似):
public class DesEncrypt {
private Key key;
/**
* 根据参数生成KEY
*
* @param strKey
*/
public void getKey(String strKey) {
try {
KeyGenerator _generator = KeyGenerator.
getInstance(“DES”);
_generator.init(new SecureRandom
(strKey.getBytes()));
this.key = _generator.generateKey();
_generator = null;
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 加密 String明文输入,String密文输出
*
* @param strMing
* @return
*/
public String getEncString(String strMing) {
byte[] byteMi = null;
byte[] byteMing = null;
String strMi = ““;
BASE64Encoder base64en = new BASE64Encoder();
try {
byteMing = strMing.getBytes(“UTF8”);
byteMi = this.getEncCode(byteMing);
strMi = base64en.encode(byteMi);
} catch (Exception e) {
e.printStackTrace();
} finally {
base64en = null;
byteMing = null;
byteMi = null;
}
return strMi;
}
/**
* 解密 以String密文输入,String明文输出
*
* @param strMi
* @return
*/
public String getDesString(String strMi) {
BASE64Decoder base64De = new BASE64Decoder();
byte[] byteMing = null;
byte[] byteMi = null;
String strMing = ““;
try {
byteMi = base64De.decodeBuffer(strMi);
byteMing = this.getDesCode(byteMi);
strMing = new String(byteMing, “UTF8”);
} catch (Exception e) {
e.printStackTrace();
} finally {
base64De = null;
byteMing = null;
byteMi = null;
}
return strMing;
}
(3) 章节维护算法
首页
上一页
1
2
3
下一页
尾页
2
/3/3
相关论文
上一篇
:
互联网的利与弊
下一篇
:
移动电子商务的现状和发展前景分析
推荐论文
本专业最新论文
Tags:
软件工程
网络课程
设计
【
返回顶部
】
相关栏目
自动化相关
计算机论文
工程管理论文
法律论文
医学论文
人力资源
电子专业
电气工程
英语论文
行政管理
电子商务
社科文学
教育论文
物流专业
金融专业
财务管理
会计专业
化学化工材料科学
电子通信
环境科学
经济类
机械模具类
报告,总结,申请书
其他专业论文