本文使用js實現des加密解密,先了解以下des加密。
效果:
http://hovertree.com/texiao/js/28/
DES算法為密碼體制中的對稱密碼體制,又被成為美國數據加密標准,是1972年美國IBM公司研制的對稱密碼體制加密算法。其密鑰長度為56位,明文按64位進行分組,將分組後的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。
DES加密算法特點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。DES工作的基本原理是,其入口參數有三個:key、data、mode。 key為加密解密使用的密鑰,data為加密解密的數據,mode為其工作模式。當模式為加密模式時,明文按照64位進行分組,形成明文組,key用於對數據加密,當模式為解密模式時,key用於對數據解密。
實際運用中,密鑰只用到了64位中的56位,這樣才具有高的安全性。DES( Data Encryption Standard)算法,於1977年得到美國政府的正式許可,是一種用56位密鑰來加密64位數據的方法。雖然56位密鑰的DES算法已經風光不在,而且常有用Des加密的明文被破譯的報道,但是了解一下昔日美國的標准加密算法總是有益的,而且目前DES算法得到了廣泛的應用,在某些場合,仍然發揮著余熱。
代碼:<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>在線DES加密解密代碼 - 何問起</title><base target="_blank" />
<script type="text/javascript" src="http://hovertree.com/texiao/js/28/des.js"></script>
<script>
function getResult(){
//待加密字符串
var str = document.getElementById("str").innerText;
//第一個參數必須;第二個、第三個參數可選
var key1 = document.getElementById("key1").innerText;
var key2 = document.getElementById("key2").innerText;
var key3 = document.getElementById("key3").innerText;
//加密方法
var enResult = strEnc(str,key1,key2,key3);
//解密方法
var deResult = strDec(enResult,key1,key2,key3);
//展示結果
document.getElementById("enStr").innerText = enResult;
document.getElementById("dnStr").innerText = deResult;
}
</script>
</head>
<body>
<div style="width:500px;margin:5px auto;">
<h1>JS實現DES加解密</h1>
<input type="button" value="獲取加密結果與解密結果" onclick="getResult()" />
<table>
<tr>
<td align="left">字符串:</td>
<td><span id="str">admin</span></td>
</tr>
<tr>
<td>加密key:</td>
<td>key1=<span id="key1">1</span>;key2=<span id="key2">2</span>;key3=<span id="key3">3</span></td>
</tr>
<tr>
<td align="left">加密結果:</td>
<td align="left"><label id="enStr"></label></td>
</tr>
<tr>
<td align="left">解密結果: </td>
<td align="left"><label id="dnStr"></label></td>
</tr>
</table>
</div>
<div style="text-align:center;margin:10px 0; font:normal 14px/24px 'MicroSoft YaHei';">
<p>適用浏覽器:IE8、360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗.</p>
<p>來源:<a href="http://hovertree.com" target="_blank">何問起</a>
<a href="http://hovertree.com/h/bjaf/jsdesjiami.htm">原文</a> <a href="http://hovertree.com/texiao/">特效</a>
</p>
</div>
</body>
</html>