文档库 最新最全的文档下载
当前位置:文档库 › C# 加密解密类 DES 3DES MD5

C# 加密解密类 DES 3DES MD5

C# 加密解密类 DES 3DES MD5
C# 加密解密类 DES 3DES MD5

C# 加密解密类 DES 3DES MD5

https://www.wendangku.net/doc/7e7794888.html,ing System;

https://www.wendangku.net/doc/7e7794888.html,ing System.Security.Cryptography;

https://www.wendangku.net/doc/7e7794888.html,ing System.IO;

https://www.wendangku.net/doc/7e7794888.html,ing System.Data;

https://www.wendangku.net/doc/7e7794888.html,ing System.Web;

https://www.wendangku.net/doc/7e7794888.html,ing System.Text;

https://www.wendangku.net/doc/7e7794888.html,ing System.Security;

https://www.wendangku.net/doc/7e7794888.html,space https://www.wendangku.net/doc/7e7794888.html,mon

9.{

10. ///

11. /// 加密解密

12. ///

13. public class Encrypt

14. {

15. #region DES密钥

16. ///

17. /// DES密钥

18. ///

19. public static byte[] DESKey = new byte[] {0x52, 0xBC, 0

xA1, 0x6A, 0xD5, 0x87, 0x3B, 0xE6, 0x82, 0x7A, 0x2A, 0x64, 0x3A , 0x7F, 0x32, 0xBB, 0x1B, 0x67, 0xE2, 0x5E, 0x06, 0x19, 0xB9, 0 x2D, 0x68, 0xB3, 0x4F, 0xFB, 0xBF, 0xDD, 0x55 ,0xB8 };

20. #endregion

21.

22. #region DES加密解密

23. ///

24. /// DES加密

25. ///

26. /// 待加密字串

27. /// 32位Key值

28. /// 加密后的字符串

29. public static string DESEncrypt(string strSource)

30. {

31. return DESEncrypt(strSource, DESKey);

32. }

33. public static string DESEncrypt(string strSource,byte[]

key)

34. {

35. SymmetricAlgorithm sa = Rijndael.Create();

36. sa.Key = key;

37. sa.Mode= CipherMode.ECB;

38. sa.Padding = PaddingMode.Zeros;

39. MemoryStream ms = new MemoryStream();

40. CryptoStream cs = new CryptoStream(ms, sa.CreateEnc

ryptor(), CryptoStreamMode.Write);

41. byte[] byt = Encoding.Unicode.GetBytes(strSource);

42. cs.Write(byt, 0, byt.Length);

43. cs.FlushFinalBlock();

44. cs.Close();

45. return Convert.ToBase64String(ms.ToArray());

46. }

47. ///

48. /// DES解密

49. ///

50. /// 待解密的字串

51. /// 32位Key值

52. /// 解密后的字符串

53. public static string DESDecrypt(string strSource)

54. {

55. return DESDecrypt(strSource, DESKey);

56. }

57. public static string DESDecrypt(string strSource,byte[]

key)

58. {

59. SymmetricAlgorithm sa = Rijndael.Create();

60. sa.Key = key;

61. sa.Mode = CipherMode.ECB;

62. sa.Padding = PaddingMode.Zeros;

63. ICryptoTransform ct = sa.CreateDecryptor();

64. byte[] byt = Convert.FromBase64String(strSource);

65. MemoryStream ms = new MemoryStream(byt);

66. CryptoStream cs = new CryptoStream(ms, ct, CryptoSt

reamMode.Read);

67. StreamReader sr = new StreamReader(cs, Encoding.Uni

code);

68. return sr.ReadToEnd();

69. }

70. #endregion

71.

72. #region 一个用hash实现的加密解密方法

73. ///

74. /// 加密

75. ///

76. ///

77. ///

78. public static string EncryptStrByHash(string src)

79. {

80. if (src.Length==0)

81. {

82. return "";

83. }

84. byte[] HaKey=System.Text.Encoding.ASCII.GetBytes((s

rc+"Test").ToCharArray());

85. byte[] HaData=new byte[20];

86. HMACSHA1 Hmac=new HMACSHA1(HaKey);

87. CryptoStream cs=new CryptoStream(Stream.Null,Hmac,C

ryptoStreamMode.Write);

88. try

89. {

90. cs.Write(HaData,0,HaData.Length);

91. }

92. finally

93. {

94. cs.Close();

95. }

96. string HaResult = System.Convert.ToBase64Stri

ng(Hmac.Hash).Substring(0,16);

97. byte[] RiKey = System.Text.Encoding.ASCII.Get

Bytes(HaResult.ToCharArray());

98. byte[] RiDataBuf = System.Text.Encoding.ASCII

.GetBytes(src.ToCharArray());

99. byte[] EncodedBytes = {};

100. MemoryStream ms = new MemoryStream();

101. RijndaelManaged rv = new RijndaelManag ed();

102. cs = new CryptoStream(ms, rv.CreateEnc ryptor(RiKey, RiKey), CryptoStreamMode.Write);

103. try

104. {

105. cs.Write(RiDataBuf, 0, RiDataBuf.Lengt

h);

106. cs.FlushFinalBlock();

107. EncodedBytes = ms.ToArray();

108. }

109. finally

110. {

111. ms.Close();

112. cs.Close();

113. }

114. return HaResult+System.Convert.ToBase64Strin g(EncodedBytes);

115. }

116.

117. ///

118. /// 解密

119. ///

120. ///

121. ///

122. public static string DecrypStrByHash(string src)

123. {

124. if (src.Length<40) return "";

125. byte[] SrcBytes = System.Convert.FromBas e64String(src.Substring(16));

126. byte[] RiKey = System.Text.Encoding.ASCI

I.GetBytes(src.Substring(0,16).ToCharArray());

127. byte[] InitialText = new byte[SrcBytes .Length];

128. RijndaelManaged rv = new RijndaelManag ed();

129. MemoryStream ms = new MemoryStream(Src Bytes);

130. CryptoStream cs = new CryptoStream(ms, rv.CreateDecryptor(RiKey, RiKey), CryptoStreamMode.Read) ;

131. try

132. {

133. cs.Read(InitialText, 0, InitialText.Le ngth);

134. }

135. finally

136. {

137. ms.Close();

138. cs.Close();

139. }

140. System.Text.StringBuilder Result = new System.Text.StringBuilder();

141. for(int i=0; i < InitialText.Length;

++i) if (InitialText[i]>0) Result.Append((char) Initia lText[i]);

142. return Result.ToString();

143. }

144.

145. ///

146. /// 对加密后的密文重新编码,如果密文长>16,则去掉前16个字符,如果长度小于16,返回空字符串

147. ///

148. ///

149. ///

150. public static string ReEncryptStrByHash(string s )

151. {

152. //string e= (new Encrypt()).EncryptStrByHash(s );

153. string e= EncryptStrByHash(s);

154. return ((e.Length>16)?e.Substring(16):""); 155. }

156. #endregion

157.

158. #region Md5加密,生成16位或32位,生成的密文都是大写

159. ///

160. /// MD5 16位加密

161. ///

162. ///

163. ///

164. public static string Md5To16(string str)

165. {

166. MD5CryptoServiceProvider md5 = new MD5CryptoSe rviceProvider();

167. string pwd = BitConverter.ToString(https://www.wendangku.net/doc/7e7794888.html,pute Hash(UTF8Encoding.Default.GetBytes(str)), 4, 8);

168. pwd = pwd.Replace("-", "");

169. return pwd;

170. }

171.

172. ///

173. /// MD5 32位加密

174. ///

175. ///

176. ///

177. public static string Md5To32(string str)

178. {

179. string pwd = "";

180. MD5 md5 = MD5.Create();

181. byte[] s = https://www.wendangku.net/doc/7e7794888.html,puteHash(Encoding.UTF8.GetBy tes(str));

182. for (int i = 0; i < s.Length; i++){

183. pwd = pwd + s[i].ToString("X2");

184. }

185. return pwd;

186. }

187. #endregion

188.

189. #region 3DES加密解密

190. ///

191. /// 3DES加密

192. ///

193. ///

194. ///

195. public static string Encrypt3DES(string str) 196. {

197. //密钥

198. string sKey = "wyw308";

199. // //矢量,可为空

200. string sIV = "scf521";

201. // //构造对称算法

202. SymmetricAlgorithm mCSP = new TripleDESCryptoS erviceProvider();

203.

204. ICryptoTransform ct;

205. MemoryStream ms;

206. CryptoStream cs;

207. byte[] byt;

208. mCSP.Key = Convert.FromBase64String(sKey); 209. mCSP.IV = Convert.FromBase64String(sIV); 210. mCSP.Mode = System.Security.Cryptography.Ciphe rMode.ECB;

211. mCSP.Padding = System.Security.Cryptography.Pa ddingMode.PKCS7;

212. ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);

213. byt = Encoding.UTF8.GetBytes(str);

214. ms = new MemoryStream();

215. cs = new CryptoStream(ms, ct, CryptoStreamMode .Write);

216. cs.Write(byt, 0, byt.Length);

217. cs.FlushFinalBlock();

218. cs.Close();

219. return Convert.ToBase64String(ms.ToArray()); 220. }

221. ///

222. /// 带指定密钥和矢量的3DES加密

223. ///

224. ///

225. ///

226. ///

227. ///

228. public static string Encrypt3DES(string str,string sKey,string sIV)

229. {

230. SymmetricAlgorithm mCSP = new TripleDESCryptoS erviceProvider();

231. ICryptoTransform ct;

232. MemoryStream ms;

233. CryptoStream cs;

234. byte[] byt;

235. mCSP.Key = Convert.FromBase64String(sKey); 236. mCSP.IV = Convert.FromBase64String(sIV); 237. mCSP.Mode = System.Security.Cryptography.Ciphe rMode.ECB;

238. mCSP.Padding = System.Security.Cryptography.Pa ddingMode.PKCS7;

239. ct = mCSP.CreateEncryptor(mCSP.Key, mCSP.IV);

240. byt = Encoding.UTF8.GetBytes(str);

241. ms = new MemoryStream();

242. cs = new CryptoStream(ms, ct, CryptoStreamMode .Write);

243. cs.Write(byt, 0, byt.Length);

244. cs.FlushFinalBlock();

245. cs.Close();

246. return Convert.ToBase64String(ms.ToArray()); 247. }

248.

249. ///

250. /// 3DES解密

251. ///

252. ///

253. ///

254. public static string Decrypt3DES(string Value) 255. {

256. string sKey = "wyw308";

257. string sIV = "scf521";

258. SymmetricAlgorithm mCSP = new TripleDESCryptoS erviceProvider();

259. ICryptoTransform ct;

260. MemoryStream ms;

261. CryptoStream cs;

262. byte[] byt;

263. mCSP.Key = Convert.FromBase64String(sKey); 264. mCSP.IV = Convert.FromBase64String(sIV); 265. mCSP.Mode = System.Security.Cryptography.Ciphe rMode.ECB;

266. mCSP.Padding = System.Security.Cryptography.Pa ddingMode.PKCS7;

267. ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

268. byt = Convert.FromBase64String(Value); 269. ms = new MemoryStream();

270. cs = new CryptoStream(ms, ct, CryptoStreamMode .Write);

271. cs.Write(byt, 0, byt.Length);

272. cs.FlushFinalBlock();

273. cs.Close();

274. return Encoding.UTF8.GetString(ms.ToArray());

275. }

276. ///

277. /// 带指定密钥和矢量的3DES解密

278. ///

279. ///

280. ///

281. ///

282. ///

283. public static string Decrypt3DES(string str,string sKey,string sIV)

284. {

285. SymmetricAlgorithm mCSP = new TripleDESCryptoS erviceProvider();

286. ICryptoTransform ct;

287. MemoryStream ms;

288. CryptoStream cs;

289. byte[] byt;

290. mCSP.Key = Convert.FromBase64String(sKey); 291. mCSP.IV = Convert.FromBase64String(sIV);

292. mCSP.Mode = System.Security.Cryptography.Ciphe rMode.ECB;

293. mCSP.Padding = System.Security.Cryptography.Pa ddingMode.PKCS7;

294. ct = mCSP.CreateDecryptor(mCSP.Key, mCSP.IV);

295. byt = Convert.FromBase64String(str);

296. ms = new MemoryStream();

297. cs = new CryptoStream(ms, ct, CryptoStreamMode .Write);

298. cs.Write(byt, 0, byt.Length);

299. cs.FlushFinalBlock();

300. cs.Close();

301. return Encoding.UTF8.GetString(ms.ToArray());

302. }

303. #endregion

304.

305. #region 一个简单的加密解密方法,只支持英文

306. public static string EnCryptEnStr( string str ) //倒序加1加密

307. {

308. byte[] by=new byte[str.Length];

309. for( int i=0;

310. i<=str.Length-1;

311. i++ )

312. {

313. by[i]=( byte )( ( byte )str[i]+1 ); 314. }

315. str="";

316. for( int i=by.Length-1;

317. i>=0;

318. i-- )

319. {

320. str+=( ( char )by[i] ).ToString( ); 321. }

322. return str;

323. }

324. public static string DeCryptEnStr( string str ) //顺序减1解码

325. {

326. byte[] by=new byte[str.Length];

327. for( int i=0;

328. i<=str.Length-1;

329. i++ )

330. {

331. by[i]=( byte )( ( byte )str[i]-1 ); 332. }

333. str="";

334. for( int i=by.Length-1;

335. i>=0;

336. i-- )

337. {

338. str+=( ( char )by[i] ).ToString( ); 339. }

340. return str;

341. }

342. #endregion

343.

344. #region 一个简单的加密解密方法,在上一个的基础上支持中文

345. public static string EnCryptCnStr(string str) 346. {

347. string htext = ""; // blank text

348.

349. for ( int i = 0; i < str.Length; i++)

350. {

351. htext = htext + (char) (str[i] + 10 - 1 *

2);

352. }

353. return htext;

354. }

355.

356. public static string DeCryptCnStr(string str) 357. {

358. string dtext = "";

359.

360. for ( int i=0; i < str.Length; i++)

361. {

362. dtext = dtext + (char) (str[i] - 10 + 1*2) ;

363. }

364. return dtext;

365. }

366. #endregion

367.

368. #region Discuz论坛Md5加密删除

369. ///

370. /// Discuz论坛Md5加密

371. ///

372. ///

373. ///

374. public static string Md5(string str)

375. {

376. MD5 md5Hasher = MD5.Create();

377. string re="";

378. byte[] data = https://www.wendangku.net/doc/7e7794888.html,puteHash(Encoding.U TF8.GetBytes(str+"%$#@!"));//yc

379. for (int i = 0; i < data.Length; i++){ 380. re += data[i].ToString("x2");

381. }

382. return re;

383. }

384. #endregion

385. }

386.}

网络安全常见的四种加密解密算法

package mima; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class Mainer { StringBuffer MStr = new StringBuffer(""); // 加密字符串 StringBuffer CStr = new StringBuffer(""); // 解密字符串 public static void main(String[] args) { System.out.print("请输入密钥:"); Scanner s = new Scanner(System.in); int key = s.nextInt() % 26; // %26的意义是获取密钥的偏移值 Mainer ks = new Mainer(); ks.E(key); // 加密 ks.D(key); // 解密 } /** * 加密公式 */ void E(int k) { try { System.out.println("请输入一段明文:"); char b[]; BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in)); String str2 = br2.readLine(); b = str2.toCharArray(); char ch = ' '; for (int i = 0; i < str2.length(); i++) { if (b[i] >= 'a' && b[i] <= 'z') { ch = (char) ((b[i] - 'a' + k) % 26 + 'a'); } if(b[i] >= 'A' && b[i] <= 'Z'){ ch = (char) ((b[i] - 'A' + k) % 26 + 'A'); } if(b[i]>='0'&&b[i]<='9')

几种常用的数据加密技术

《Network Security Technology》Experiment Guide Encryption Algorithm Lecture Code: 011184 Experiment Title:加密算法 KeyWords:MD5, PGP, RSA Lecturer:Dong Wang Time:Week 04 Location:Training Building 401 Teaching Audience:09Net1&2 October 10, 2011

实验目的: 1,通过对MD5加密和破解工具的使用,掌握MD5算法的作用并了解其安全性; 2,通过对PGP加密系统的使用,掌握PGP加密算法的作用并了解其安全性; 3,对比MD5和PGP两种加密算法,了解它们的优缺点,并总结对比方法。 实验环境: 2k3一台,XP一台,确保相互ping通; 实验工具:MD5V erify, MD5Crack, RSA-Tools,PGP8.1 MD5加密算法介绍 当前广泛存在有两种加密方式,单向加密和双向加密。双向加密是加密算法中最常用的,它将明文数据加密为密文数据,可以使用一定的算法将密文解密为明文。双向加密适合于隐秘通讯,比如,我们在网上购物的时候,需要向网站提交信用卡密码,我们当然不希望我们的数据直接在网上明文传送,因为这样很可能被别的用户“偷听”,我们希望我们的信用卡密码是通过加密以后,再在网络传送,这样,网站接受到我们的数据以后,通过解密算法就可以得到准确的信用卡账号。 单向加密刚好相反,只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。这有什么用处?在实际中的一个应用就是数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这些信息被泄露,也不能立即理解这些信息的真正含义。 MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。不可恢复性是MD5算法的最大特点。 实验步骤- MD5加密与破解: 1,运行MD5Verify.exe,输入加密内容‘姓名(英字)’,生成MD5密文;

加密解密程序设计

课程设计 题目加密解密程序设计 学院自动化学院 专业电气工程及其自动化班级 姓名 指导教师 年月9 日

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位:自动化学院 题目:加密解密程序设计 初始条件: 掌握8086汇编语言程序设计方法,设计一个电子时钟,实现分、秒、时的显示与刷新功能。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) 1. 定义显示界面。 2. 调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。 3. 将存在系统内存区的时间数用数字式或指针式钟表的形式显示出来。 4. 获取键盘的按键值,判断键值并退出系统。 5. 撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。 时间安排: 12月26日-----12月28日查阅资料及方案设计 12月29日----- 1月 2 日编程 1月3日----- 1月7日调试程序 1月8日----- 1月9日撰写课程设计报告 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要 (1) 1设计任务及要求 (2) 1.1 加密解密设计的意义 (2) 1.2 程序设计任务 (2) 2 加密方法及方案比较 (3) 2.1 加密方法 (3) 2.2 加密方案及比较 (3) 3 加密解密设计流程及描述 (5) 3.1程序所需模块 (5) 3.2程序运行界面 (5) 3.3响铃程序 (6) 3.4功能选择程序 (6) 3.5数据循环输入子程序 (7) 3.6加密过程程序 (8) 3.7解密过程程序 (9) 3.8退出程序 (10) 3.9总体程序流程图 (11) 4 程序调试说明和结果分析 (12) 4.1 程序调试 (12) 4.2 程序运行结果 (12) 5 心得体会 (15) 参考文献 (16) 附录:设计原程序 (17) 本科生课程设计成绩评定

数据加密实验报告

实验报告 课程:计算机保密_ _ 实验名称:数据的加密与解密_ _ 院系(部):计科院_ _ 专业班级:计科11001班_ _ 学号: 201003647_ _ 实验日期: 2013-4-25_ _ 姓名: _刘雄 _ 报告日期: _2013-5-1 _ 报告评分:教师签字:

一. 实验名称 数据加密与解密 二.运行环境 Windows XP系统 IE浏览器 三.实验目的 熟悉加密解密的处理过程,了解基本的加密解密算法。尝试编制基本的加密解密程序。掌握信息认证技术。 四.实验内容及步骤 1、安装运行常用的加解密软件。 2、掌握加解密软件的实际运用。 *3、编写凯撒密码实现、维吉尼亚表加密等置换和替换加解密程序。 4、掌握信息认证的方法及完整性认证。 (1)安装运行常用的加解密软件,掌握加解密软件的实际运用 任务一:通过安装运行加密解密软件(Apocalypso.exe;RSATool.exe;SWriter.exe等(参见:实验一指导))的实际运用,了解并掌握对称密码体系DES、IDEA、AES等算法,及非对称密码体制RSA等算法实施加密加密的原理及技术。 ?DES:加密解密是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位。 ?BlowFish:算法用来加密64Bit长度的字符串或文件和文件夹加密软件。 ?Gost(Gosudarstvennyi Standard):算法是一种由前苏联设计的类似DES算法的分组密码算法。它是一个64位分组及256位密钥的采用32轮简单迭代型加密算法. ?IDEA:国际数据加密算法:使用128 位密钥提供非常强的安全性; ?Rijndael:是带有可变块长和可变密钥长度的迭代块密码(AES 算法)。块长和密钥长度可以分别指定成128、192 或256 位。 ?MISTY1:它用128位密钥对64位数据进行不确定轮回的加密。文档分为两部分:密钥产生部分和数据随机化部分。 ?Twofish:同Blowfish一样,Twofish使用分组加密机制。它使用任何长度为256比特的单个密钥,对如智能卡的微处理器和嵌入在硬件中运行的软件很有效。它允许使用者调节加密速度,密钥安装时间,和编码大小来平衡性能。 ?Cast-256:AES 算法的一种。 (同学们也可自己下载相应的加解密软件,应用并分析加解密过程) 任务二:下载带MD5验证码的软件(如:https://www.wendangku.net/doc/7e7794888.html,/downloads/installer/下载(MySQL):Windows (x86, 32-bit), MSI Installer 5.6.11、1.5M;MD5码: 20f788b009a7af437ff4abce8fb3a7d1),使用MD5Verify工具对刚下载的软件生成信息摘要,并与原来的MD5码比较以确定所下载软件的完整性。或用两款不同的MD5软件对同一文件提取信息摘要,而后比较是否一致,由此可进行文件的完整性认证。

数据加密方案

数据加密方案

一、什么是数据加密 1、数据加密的定义 数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。 2、加密方式分类 数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随机数中选取的。按加密算法分为对称密钥和非对称密钥两种。 对称密钥:加密和解密时使用同一个密钥,即同一个算法。如DES和MIT的Kerberos算法。单密钥是最简单方式,通信双方必须交换彼此密钥,当需给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密。当一个文本要加密传送时,该文本用密钥加密构成密文,密文在信道上传送,收到密文后用同一个密钥将密文解出来,形成普通文体供阅读。在对称密钥中,密钥的管理极为重要,一旦密钥丢失,密文将无密可保。这种

方式在与多方通信时因为需要保存很多密钥而变得很复杂,而且密钥本身的安全就是一个问题。 对称加密 对称密钥是最古老的,一般说“密电码”采用的就是对称密钥。由于对称密钥运算量小、速度快、安全强度高,因而如今仍广泛被采用。 DES是一种数据分组的加密算法,它将数据分成长度为64位的数据块,其中8位用作奇偶校验,剩余的56位作为密码的长度。第一步将原文进行置换,得到64位的杂乱无章的数据组;第二步将其分成均等两段;第三步用加密函数进行变换,并在给定的密钥参数条件下,进行多次迭代而得到加密密文。 非对称密钥:非对称密钥由于两个密钥(加密密钥和解密密钥)各不相同,因而可以将一个密钥公开,而将另一个密钥保密,同样可以起到加密的作用。

常见格式文件的加密和解密

常用格式文件的加密解密方法 庆云县水务局项目办 二〇一二年五月二十三日

目录 0、引子 1 1、新建word文件的加密方法1 1.1任务1 1.2基本步骤1 1.3示范1 2、原有word文件的加密方法4 3、Excel文件的加密方法 4 3.1任务4 3.2基本步骤4 3.3示范4 4、CAD文件的加密方法 5 4.1任务5 4.2基本步骤6 4.3示范6 5、文件的解密方法8 5.1任务8 5.2基本步骤8 5.3示范8

0、引子 我们的日常工作,往往是处理一些文字、表格和图纸。最常用的文件格式有word、excel和CAD。怎样加密、解密这些格式的文件,是我们常遇到的问题。由于文件的加密、解密方法大致一样,所以,这里只介绍这三种文件的加密解密方法。其它格式的文件加密解密,可以参照进行。 加密解密文件需要知道文件格式的后缀名,后缀名又称文件扩展名,是操作系统用来标志文件格式的一种机制。通常来说,一个扩展名是跟在主文件名后面的,由一个分隔符分隔。如文件名“readme.txt”中,readme是主文件名,.txt为扩展名,表示这个文件被认为是一个纯文本文件。常见文档类型及其后缀名和打开方式详见下表。 常见文档类型及其后缀名和打开方式: 1、新建word文件的加密方法 1.1任务 对新建word文档1(未曾保存)进行加密 1.2基本步骤 ①打开菜单“文件”→②点击“另存为”选项→③点击“工具”按钮→④选定“安全措施选项(C)”→⑤输入密码→⑥确定→⑦再次输入密码→⑧确定→⑨保存。 1.3示范 ①打开菜单“文件”:点击菜单栏最左侧的“文件”按钮,弹出“文件”下拉列表; ②点击“另存为”选项:点击“文件”下拉列表的“另存为”选项,弹出“另存为”对话框,如图1所示。

常见硬盘加密解密的几种方法解析

常见硬盘加密解密的几种方法解析 一、修改硬盘分区表信息 硬盘分区表信息对硬盘的启动至关重要,假设找不到有效的分区表,将不能从硬盘启动或即使从软盘启动也找不到硬盘。素日,第一个分区表项的第0子节为80H,透露显示C 盘为活动DOS分区,硬盘能否自举就依*它。若将该字节改为00H,则不能从硬盘启动,但从软盘启动后,硬盘仍然可以接见。分区表的第4字节是分区类型标志,第一分区的此处素日为06H,透露显示C盘为活动DOS分区,若对第一分区的此处中止批改可对硬盘起到一定加密浸染。 详细表现为: 1.若将该字节改为0,则透露显示该分区未运用,当然不能再从C盘启动了。从软盘启动后,原来的C盘不见了,你看到的C盘是原来的D盘,D盘是原来的E盘,依此类推。 2.若将此处字节改为05H,则不但不能从硬盘启动,即使从软盘启动,硬盘的每个逻辑盘都弗成接见,多么等于整个硬盘被加密了。另外,硬盘主指导记录的有效标志是该扇区的最后两字节为55AAH。若将这两字节变为0,也可以完成对整个硬盘加锁而不能被接见。硬盘分区表在物理0柱面0磁头1扇区,可以用Norton for Win95中的Diskedit直接将该扇区调出并批改后存盘。或者在Debug下用INT 13H的02H子功用将0柱面0磁头1扇区读到内存,在响应位置中止批改,再用INT 13H的03H子功用写入0柱面0磁头1扇区就可以了。

上面的加密措置,对通俗用户来讲已足够了。但对有阅历的用户,即使硬盘弗成接见,也可以用INT 13H的02H子功用将0柱面0磁头1扇区读出,根据阅历将响应位置数据中止批改,可以完成对硬盘解锁,因为这些位置的数据素日是固定的或有限的几种景遇。另外一种保险但显得笨拙的方法是将硬盘的分区表项备份起来,然后将其悉数变为0,多么别人由于不知道分区信息,就无法对硬盘解锁和接见硬盘了。 二、对硬盘启动加口令 我们知道,在CMOS中可以设置系统口令,使非法用户无法启动比赛争论机,当然也就无法运用硬盘了。但这并未真正锁住硬盘,因为只需将硬盘挂在其他比赛争论机上,硬盘上的数据和软件仍可运用。要对硬盘启动加口令,可以首先将硬盘0柱面0磁头1扇区的主指导记录和分区信息都储存在硬盘并不运用的隐含扇区,比如0柱面0磁头3扇区。然后用Debug重写一个不超越512字节的轨范(理论上100多字节足矣)装载到硬盘0柱面0磁头1扇区。该轨范的功用是执行它时首先需求输进口令,若口令纰谬则进入死轮回;若口令正确则读取硬盘上存有主指导记录和分区信息的隐含扇区(0柱面0磁头3扇区),并转去执行主指导记录。 由于硬盘启动时首先是BIOS调用自举轨范INT 19H将主硬盘的0柱面0磁头1扇区的主指导记录读入内存0000:7C00H处执行,而我们曾经偷梁换柱,将0柱面0磁头1扇区变为我们自己设计的轨范。多么从硬盘启动时,首先执行的不是主指导轨范,而是我们设计的轨范。在执行我们设计的轨范时,口令若纰谬则无法继续执行,也就无法启动了。即使从软盘启动,由于0柱面0磁头1扇区不再有分区信息,硬盘也不能被接见了。当然还可以将我们设计的轨范像病毒一样,将个中一部分驻留在高端内存,看守INT 13H的运用,防止0柱面0磁头1扇区被改写。

实现加密解密程序

目录 一.摘要 (1) 二.网络安全简 (2) 安全技术手段 (3) 三.现代密码技术分类 (3) 1.对称密码体制 (4) 2.非对称密码体制 (4) 四.RSA加密解密体制 (5) 1.RSA公钥密码体制概述 (5) 2.RSA公钥密码体制的安全性 (6) 3.RSA算法工作原理 (6) 五.实现RSA加密解密算法 (7) 六.RSA的安全性 (11) 七.结语 (13)

实现加密解密程序 摘要:随着计算机网络的广泛应用,网络信息安全的重要性也日渐突出,计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全;网络安全也已经成为国家、国防及国民经济的重要组成部分。密码技术是保护信息安全的最主要手段之一。使用密码技术可以防止信息被篡改、伪造和假冒。加密算法:将普通信息(明文)转换成难以理解的资料(密文)的过程;解密算法则是其相反的过程:由密文转换回明文;密码机包含了这两种算法,一般加密即同时指称加密与解密的技术。 关键字:密码技术、加密算法、解密算法、密码机、RSA 正文 一、网络安全简介 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。网络安全从其本质上来讲就是网络上的信息安全。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全的研究领域。网络安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。 网络安全的具体含义会随着“角度”的变化而变化。比如:从用户(个人、企业等)的角度来说,他们希望涉及个人隐私或商业利益的信息在网络上传输时受到机密性、完整性和真实性的保护,避免其他人或对手利用窃听、冒充、篡改、抵赖等手段侵犯用户的利益和隐私。 二、安全技术手段

几种常用的单片机加密方法

几种常用的单片机加密方法 一、加密方法 1、烧断数据总线。这个方法我想应不错,但应有损坏的风险,听说也能**。 2、芯片打磨改型,这个方法有一定作用,改了型号能误导,但同时也增加成本,解密者一般也能分析出来。 3、用不合格的单片机的的存储器:这个方法听起来不错,值得一试。很多单片机有这种情况,有的是小容量改为大容量来用,**者应很难发现。例:8031/8052 单片机就是8731/8752掩模产品中的不合格产品,内部可能有ROM。可把8031/8052 当8751/8752 来用.但使用时要测试可靠。 4、其他还有添加外部硬件电路的加密方法。但那样增加成本,效果不一定好。 5、软件加密,是一些防止别人读懂程序的方法,单一的这种方法不能防止别人全盘复制。须配合其他的加密方法。 6、通过序列号加密, 这个方法当你的产品是连接PC时或网络,我想是一个比较理想的方法。原理跟电话产品防伪标志相近。就是在你的单片机中生成一个唯一的随机长序列号,并加入复杂的特种算法,或加入你们重新编码的企业信息在里面,每个芯片内不同,复制者只能复制到一个序列号。这个方法不能防止复制,但能发现复制品,并可在升级或在网络状态控制它或让他自毁。如果产品不联机或不可升级,则这个方法完全无效,只能是在上法院时可当作证据,因为内含特种算法破解者是无法知道的。 7、通过单片机唯一的特性标识(不可修改)进行加密

这个方法最好,能很好的防止复制。但大多单片机没有唯一标识。STC单片机里面含唯一标识,但本人没用过,下次一定要研究使用一下。理论上只要含唯一标识是单片机都可实现,ATMEL AVR系列单片大部分型号有RC校正字节(几十个芯片才有一个相同,并且不可修改)能实现这个理想功能,可做到即使芯片内程序被读出也无法直接在另一个同型号的单片机上正常运行。并且如果用这个唯一标识来生成含有加密算法的序列号,结合第6种方法,哪应是最理想的加密方法。 以上方法应都是一种加密的思路,各种方法可接合着用,6、7两种方法是本人认为比较合适,实现起来比较容易的方法。后面将重点介绍两种加密方式的实现方法。 二、序列号加密实现方法 1、原理 就是在存储器某个区块放入一个唯一的序列号(长一点,无规律),每个芯片不同。原理跟电话产品防伪标志相近 | PC机 | <------------>| 带自定义算法序列号单片机系统 | 控制方法: 1、PC根据传回来的序列号根据算法判断是否合法,合法就运行,不合法处理它。当然,如果是**的序列号,可自毁。 2、单片机内部的序列号经加密算法处理,单片机系统同样要防止软件被更改,可在单片机内部加入CRC等数据校验。一般情况下,序列号如果不合算法,单片机系统应让程序运行出错,这样**者一般不会去修改序列号,如果修改了也没关系,因为PC还能判断是否合法。 3、序列号传送时可采用双向加密算法认证,相当于银卡的数据交换方式。

加密解密常用函数

本帖最后由小平于2013-6-22 10:05 编辑 #region DES加密解密 ///

/// DES加密 /// /// 待加密字串 /// 32位Key值 /// 加密后的字符串 public string DESEncrypt(string strSource) { return DESEncrypt(strSource, DESKey); } public string DESEncrypt(string strSource, byte[] key) { SymmetricAlgorithm sa = Rijndael.Create(); sa.Key = key; sa.Mode = CipherMode.ECB; sa.Padding = PaddingMode.Zeros; MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, sa.CreateEncryptor(), CryptoStreamMode.Write); byte[] byt = Encoding.Unicode.GetBytes(strSource);

cs.Write(byt, 0, byt.Length); cs.FlushFinalBlock(); cs.Close(); return Convert.ToBase64String(ms.ToArray()); } ///

/// DES解密 /// /// 待解密的字串 /// 32位Key值 /// 解密后的字符串 public string DESDecrypt(string strSource) { return DESDecrypt(strSource, DESKey); } public string DESDecrypt(string strSource, byte[] key) { SymmetricAlgorithm sa = Rijndael.Create(); sa.Key = key; sa.Mode = CipherMode.ECB; sa.Padding = PaddingMode.Zeros; ICryptoTransform ct = sa.CreateDecryptor();

加密及解密算法(利用C语言)

利用VC++6.0 C语言进行设计加密: #include "stdio.h" #include"string.h" void main() { int i,k,h; char g[26]; printf("请输入字符窜\n"); gets(g); k=strlen(g); do{ for(i=0;i='a'&&g[i]<='z') g[i]-=32; for(i=0;i='A') g[i]+=3; else if(g[i]>'W'&&g[i]<='Z') g[i]-=23; } printf("%s\n",g); printf("0-退出任意键继续\n"); scanf("%d",&h); } while(h); } 2.进行解密算法 #include "stdio.h" #include"string.h" void main() { int i,k,h; char g[26]; printf("请输入字符窜\n");

gets(g); k=strlen(g); do{ for(i=0;i='d'&&g[i]<='z') g[i]-=3; else if(g[i]>'d'&&g[i]<='a') g[i]+=23; for(i=0;i='D'&&g[i]<='Z') g[i]-=3; else if(g[i]>'D'&&g[i]<='A') g[i]+=23; printf("%s\n",g); printf("0-退出任意键继续\n"); scanf("%d",&h); } while(h); }

课常见各种加密解密方法详解

------------------------------------------------------------------------------------------- 新世纪网安基地(https://www.wendangku.net/doc/7e7794888.html,) :原创动画多,精品软件更新快 论坛地址:https://www.wendangku.net/doc/7e7794888.html, : 分类细,免费语音培训课程丰富 网站宗旨:打造特色第一的中国信息安全服务站点. 精品VIP教学网:https://www.wendangku.net/doc/7e7794888.html, --------------------------------------------------------------------------------------------- 常见各种加密解密方法详解 讲师:wjs 学习目标: 1:*星号密码的破解方法 *号密码查看器或aio -unhide 2:md5 16位32位40位的加密解密破解技巧 40位MD5 = 16位MD5+《32位MD5后8位》+《32位MD5后16位》 https://www.wendangku.net/doc/7e7794888.html,/default.aspx https://www.wendangku.net/doc/7e7794888.html,/ https://www.wendangku.net/doc/7e7794888.html,/ https://www.wendangku.net/doc/7e7794888.html,/cracker/ 3:sha1的加密和解密 4:serv_u ftpserver密码的加密原理以及破解方法 5:radmin 密码的破解和提权4899 读取目标机器注册表 HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters\Parameter HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters\port 6:vnc的密码破解和提权5900 1:RealVNC的路径: HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\WinVNC4\Password D7 51 CC 73 31 24 7A 93 12 7C EF FA 6E 0B 7A D9 x4.exe -W 大写的W vncpwdump.exe -s 破解本机的VNC密码 vncpwdump.exe -k 得到的key进行破解 2:UltraVNC的路径: HKEY_LOCAL_MACHINE\SOFTWARE\ORL\WinVNC3\Default\password 7:pcanywhere密码的破解和提权5631 C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\host .cif https://www.wendangku.net/doc/7e7794888.html,/safe/online_pcAnywhere.php 在线解密 8:rdp远程桌面连接密码解密 9:adsl拨号密码解密 10:sam密码破解方法 SAMInside 或lc5破解系统密码 11:ASCII加密解密

封包加密解密

封包加密解密-01 网络游戏客户端与服务器之间需要数据交换处理,数据包通过TCP网络协议进行传送,这里我们称数据包为封包. 之前有教程介绍了如何使用模块中的功能进行封包拦截,修改,替换等功能.本章将完全讲解如何对封包的加密,解密技术. 为什么需要解密封包呢?除非那些封包是明文的(即没有加密处理过),否则就得解密,只有解密出来了数据,才能更清楚的了解游戏是如何交换数据处理,分析出封包数据才能够做出脱机万挂,完全脱离游戏客户端,模拟一个客户端来与游戏服务器连接,做你一切想做的事都没问题.所以封包加密解密技术是脱机万挂的第一前提条件. 即使不做脱机万挂,封包技术仍然比CALL技术更有用处.学过前章后大家应该也知道分析CALL,找CALL,调CALL都不是件容易的事.若能完全解密封包就可以减少或不需要CALL,模拟,内存操作了. 有加密就得有解密,有解密当然要有加密.这是相对立的.对封包数据进行加密与解密的函数过程,称为算法. 那封包加密解密技术容易吗?比较讽刺的就是,90%以上的网络游戏的封包都是很容易搞定了.为什么呢?如果算法复杂了的话,会多占CPU性能,而游戏服务器要处理的工作很多,不能把性能全用在加密解密上.举个简单的例子,游戏服务器若同时连接在线的玩家有十万人的话,这些玩家在聊天,打怪,走路等都会产生封包,若算法过于复杂,服务器就很难同时处理得了这么多玩家的封包,何况还得处理数据库中的数据呢. 出于服务器的性能考虑,所以若想同时能在线更多玩家,就不能进行复杂的算法来加密封包.不然就得限制减少能同时在线的玩家,不然游戏服务器会一卡一卡的,导致所有玩家都玩起来. 而还有很多的游戏在设计时,为了减少服务器的负担,不但算法简单,还放松了很多的一些数据验证处理.最终漏洞百出,以致于产生了全屏吸怪,穿墙,复制,无敌等等各种变态万挂. 基本上游戏的加密解密算法,都是采用简单的位运算.位就是比特位,简单的说,只是二进制数据运算处理罢了.所以有必要了解一些常见的位运算汇编指令.在汇编那章的指令那节,有过一些指令的介绍,这里再介绍一下几个重中之重的指令. 加减指令

摩斯密码以及十种常用加密方法

摩斯密码以及十种常用加密方法 ——阿尔萨斯大官人整理,来源互联网摩斯密码的历史我就不再讲了,各位可以自行百度,下面从最简单的开始: 时间控制和表示方法 有两种“符号”用来表示字元:划(—)和点(·),或分别叫嗒(Dah)和滴(D it)或长和短。?用摩斯密码表示字母,这个也算作是一层密码的: 用摩斯密码表示数字: 用摩斯密码表示标点符 号:

目前最常用的就是这些摩斯密码表示,其余的可以暂时忽略 最容易讲的栅栏密码: 手机键盘加密方式,是每个数字键上有3-4个字母,用两位数字来表示字母,例如:ru用手机键盘表示就是:7382, 那么这里就可以知道了,手机键盘加密方式不可能用1开头,第二位数字不可能超过4,解密的时候参考此 关于手 机键盘加密还有另一种方式,就是拼音的方式,具体参照手机键盘来打,例 如:“数字”表示出来就是:748 94。在手机键盘上面按下这几个数,就会出现:“数字”的拼音

手机键盘加密补充说明:利用重复的数字代表字母也是可以的,例如a可以用21代表,也可以用2代表,如果是数字9键上面的第四个字母Z也可以用9999来代表,就是94,这里也说明,重复的数字最小为1位,最大为4位。 电脑键盘棋盘加密,利用了电脑的棋盘方阵,但是个人不喜这种加密方式,因需要一个一个对照加密 当铺密码比较简单,用来表示只是数字的密码,利用汉字来表示数 字:? 电脑键盘坐标加密,如图,只是利用键盘上面的字母行和数字行来加密,下面有注释:?例:bye用电脑键盘XY表示就是:3516 13

电脑键盘中也可参照手机键盘的补充加密法:Q用1代替,X可以用222来代替,详情见6楼手机键盘补充加密法。 ADFGX加密法,这种加密法事实上也是坐标加密法,只是是用字母来表示的坐标:?例如:bye用此加密法表示就是:aa xxxf 值得注意的是:其中I与J是同一坐标都是gd,类似于下面一层楼的方法: 这种加密方法和上面的加密方法是相同的,但是是用数字来表示坐标的,其中IJ是在同一坐标上,与上层楼中的一样,就不举例 了:

加密解密基础知识

加密解密基础知识 一、加密的基础知识 1、对称性加密算法:AES,DES,3DES。 DES是一种分组数据加密算法(先将数据分成固定长度的小数据块,之后进行加密),速度较快,适用于大量数据加密,而3DES是一种基于DES的加密算法,使用3个不同秘钥对同一个分组数据进行3次加密,如此以使得密文强度更高。 相较于DES和3DES算法而言,AES算法有着更高的速度和资源使用效率,安全级别也较之更高了,被称为下一代加密算法的标准。 2、非对称性加密算法:RSA,DSA,ECC RSA和DSA的安全性及其它各方面性能都差不多,而ECC较之则有着很多的性能优越,包括处理速度,带宽要求,存储空间等等。 3、几种线性散列算法(签名算法)MD5,SHA1,HMAC 这几种算法,只生成一窜不可逆转的密文,经常用其校验数据传输过程中是否经过修改,因为相同的生成算法对于同一明文只会生成唯一的密文,若相同算法生成的密文不同,则证明传输的数据进行过了修改。通常在数据传输过程前,使用MD5和SHA1算法均需要发送和接收数据双方在数据传送之前就知道秘钥生成算法,而HMAC与之不同的是需要生成一个秘钥,发送方用此密钥对数据进行摘要处理(生成密文),接收方再利用此密钥对接收到的数据进行摘要处理,再判断生成的密文是否相同。 4、对于各种加密算法的选用 由于对称加密算法的秘钥管理是一个复杂的过程,迷药的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。 在实际操作中,我们通常采用的是:采用非对称加密算法管理对称机密算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理秘钥的优点。如果在选定了加密算法后,那采用多少位的密钥呢?一般来说,秘钥越长,运行的速度就越慢,应该根据我们实际需要的安全级别来选择,一般来说,RSA建议采用1024位的数字,ECC建议采用160位,AES采用128位即可。 注意,哈希函数,比如MD5,SHA,这些都不是加密算法。要注意他们的区别和用途,很多网友都把md5说成是加密算法,这是错误的。哈希函数:MD5,SHA是没有密钥的,相当于指纹的概念,因此也是不可逆的;MD5是128位的,SHA有不同而算法,有128位,256位等,如SHA-256,SHA-384;然后base64更加不属于加密算法的范围,它只是将byte数组进行了转换,因为很多加密后的密文或者一些特殊的字符需要显示出来,或者需要进行传递(电子邮件),但是直接转换就会导致很多不可现实的字符,会丢失一些信息,因此就转换为base64编码,这些都是可显示的字符。所以转换后,长度会增加。它是可逆的。再就是3DES,DES,这才是加密算法,因此也是可逆的,加解密都需要秘钥,也就是你说的key最后是RSA,这是公钥密码,也就是加密和解密秘钥不同,也是可逆的。

JavaScript加密解密7种方法

本文一共介绍了七种javascript加密方法: 在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE 运行的javascript代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^ 但我们也应该清楚地认识到因为javascript代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中javascript 代码的加密解密技术。 以加密下面的javascript代码为例: 一:最简单的加密解密 大家对于javascript函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式: alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B 如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点javascript代码重新把它加密如下: %61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B 呵呵!如何?这次是完全都加密了!

当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查javascript代码并执行,必选项codeString 参数是包含有效javascript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下: 是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵 二:转义字符""的妙用 大家可能对转义字符""不太熟悉,但对于javascript提供了一些特殊字符如:n (换行)、r (回车)、' (单引号)等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为: 八进制转义字符串如下: 十六进制转义字符串如下: 这次没有了解码函数,因为javascript执行时会自行转换,同样解码也是很简单如下: 就会弹出对话框告诉你解密后的结果! 三:使用Microsoft出品的脚本编码器Script Encoder来进行编码

常见文件夹的解密与加密的方法

常见文件夹的解密与加密的方法 一、加密文件或文件夹 步骤一:打开Windows资源管理器。 步骤二:右键单击要加密的文件或文件夹,然后单击“属性”。 步骤三:在“常规”选项卡上,单击“高级”。选中“加密内容以便保护数据”复选框 在加密过程中还要注意以下五点: 1.要打开“Windows 资源管理器”,请单击“开始→程序→附件”,然后单击“Windows 资源管理器”。 2.只可以加密N TF S分区卷上的文件和文件夹,FAT分区卷上的文件和文件夹无效。 3.被压缩的文件或文件夹也可以加密。如果要加密一个压缩文件或文件夹,则该文件或文件夹将会被解压。 4.无法加密标记为“系统”属性的文件,并且位于systemroot目录结构中的文件也无法加密。 5.在加密文件夹时,系统将询问是否要同时加密它的子文件夹。如果选择是,那它的子文件夹也会被加密,以后所有添 加进文件夹中的文件和子文件夹都将在添加时自动加密。 二、解密文件或文件夹 步骤一:打开Windows资源管理器。 步骤二:右键单击加密文件或文件夹,然后单击“属性”。 步骤三:在“常规”选项卡上,单击“高级”。 步骤四:清除“加密内容以便保护数据”复选框。 同样,我们在使用解密过程中要注意以下问题: 1.要打开“Windows资源管理器”,请单击“开始→程序→附件”,然后单击“Windows资源管理器”。 2.在对文件夹解密时,系统将询问是否要同时将文件夹内的所有文件和子文件夹解密。如果选择仅解密文件夹,则在要解密文件夹中的加密文件和子文件夹仍保持加密。但是,在已解密文件夹内创立的新文件和文件夹将不会被自动加密。 以上就是使用文件加、解密的方法!而在使用过程中我们也许会遇到以下一些问题,在此作以下说明: 1.高级按钮不能用 原因:加密文件系统(EFS)只能处理N TF S文件系统卷上的文件和文件夹。如果试图加密的文件或文件夹在FAT或FAT32

关于信息安全方面的数据加密技术

关于信息安全方面的数据加密技术 数据加密技术是最常用的安全保密手段,数据加密技术的关键在于加密/解密算法和密钥管理。 数据加密的基本过程就是对原来为明文的文件或数据按某种加密算法进行处理,使其成为不可读的一段代码,通常称为“密文”。密文只能在输入相应的密钥之后才能显示出原来的内容,通过这样的途径保护数据不被窃取。数据加密技术包括两个元素:算法和密钥。 数据加密技术可分成三类:对称加密、非对称加密和不可逆加密。注意:没有谁取代谁,三种数据加密技术都有其适用的领域。 1、 对称加密技术 对称加密解密的图示 常用的对称加密算法:DES (数据加密标准)、3DES (三重DES )、RC-5、IDEA (国际数据加密算法) 2、 非对称加密技术 与对称加密技术不同,非对称加密技术需要两个密钥:公用密钥(公钥)和私有密钥(私钥)。 公钥可以对外公布,私钥只能由持有人知道。正是因为加密和解密使用的是两个不同的密钥,所以这种加密技术称为非对称加密技术。 非对称加密的体制模型 非对称加密算法实现机密信息交换的过程是:B 方生成一对密钥并将其中的一把作为公用密钥向其他方公开;得到该公用密钥的A 方使用该密钥对机密信息进行加密后再发送给B 方;B 方再用自己保存的另一把私有密钥对加密后的信息进行解密。B 方只能用其私有密钥解密由其公用密钥加密后的信息。同理,为了交换信息,A 方也可产生一对密钥并将公用密钥告知B 方。 常用的非对称加密算法:RSA 公钥加密算法、Elgamal 、ECC (椭圆曲线加密算法) 3、 不可逆加密技术 不可逆加密的特征是加密过程不需要密钥,并且经过加密的数据无法解密,只有同样的输入数据经过同样的不可逆算法才能得到同样的加密数据。 【例题】下列选项中,防范网络监听最有效的是( ) A 、安装防火墙 B 、采用无线网络传输 C 、数据加密 D 、漏洞扫描 【例题解析】当信息以明文形式在网络上传输时,网络监听并不是一件难事,只要将所使用的网络端口设置成监听模式,便可以源源不断地截获网络中传输的信息。但反过来,查找是否有网络监听却很难,因为运行网络监听程序的主机只是被动地接收在网络中传输的信息,并不主动与其它主机交换信息,也没有修改在网络中传输的数据包。而对于加密后的信息,即使网络监听获取了该密文,因为缺少密钥或原本就是不可逆加密,也很难将其解密成明文。A 项不对,防火墙的基本功能之一就是监听网络,本身就是监听者。答案:C 【拓展】无线路由器主要提供了三种无线安全类型:WPA-PSK/ WPA2-PSK ,WPA/WPA2,WEP WPA-PSK/ WPA2-PSK 适合普通家庭用户和小型企业,安全性高,设置简单,基于共享密钥的WPA 模式,提供的加密算法有AES 、TKIP 两种,而PSK 密码一般用ASCII 字符。WPA/WPA2适合大型企业,因为需要架设一台专用认证服务器,代价高,维护复杂。WEP 安全性是三者中最低的。 明文输入 明文输出 共享密钥 明文输入 明文输出

相关文档