Crypto-JS DES加密解密出现的错误

这几天公司给了一个项目,说为了用户安全性,需要加密,我在网上找了一些加密,发现Crypto-JS 挺好的用的 我就用了Crypto-JS DES加密,期间出现一些错误,发现这些错误都在我引入的Crypto-JS文件里面,刚开始以为文件引入错误,重新引入了几遍还是不行,都会出现错。
不说了上代码,代码我也是借鉴的网上的,大部分都相同。
需要Crypto-JS引入文件的网上也有很多,可以去找一下。

<body>
<div>
加密前:<textarea id="source" value="" style="width:500px;height:90px;" /></textarea>
<hr>
加密后:<textarea id="target" value="" style="width:500px;height:90px;" ></textarea>
<hr>
<input type="button" onclick="test();" name="" value="加密" />
<hr>
密文:<textarea id="sourceS" value="" width="400px" style="width:500px;height:90px;" ></textarea>
<hr>
解密后:<textarea id="jiemi" value="" style="width:500px;height:90px;" ></textarea>
<hr>
<input type="button" onclick="test1();" onclick="text2()" name="" value="解密"/>
 </div>
</body>
   <script type="text/javascript">
	var key = 'BOTWAVEE';
	//CBC模式加密
	function encryptByDESModeCBC(message) {
	var keyHex = CryptoJS.enc.Utf8.parse(key);
	    var ivHex = CryptoJS.enc.Utf8.parse(key);
	    encrypted = CryptoJS.DES.encrypt(message, keyHex, {
	iv:ivHex,
	mode: CryptoJS.mode.CBC,
	padding:CryptoJS.pad.Pkcs7
	}
	    );
	return encrypted.ciphertext.toString();
	}
	//CBC模式解密
	function decryptByDESModeCBC(ciphertext2) {
	var keyHex = CryptoJS.enc.Utf8.parse(key);
	    var ivHex = CryptoJS.enc.Utf8.parse(key);
	// direct decrypt ciphertext
	var decrypted = CryptoJS.DES.decrypt({
	ciphertext: CryptoJS.enc.Hex.parse(ciphertext2)
	}, keyHex, {
	iv:ivHex,
	mode: CryptoJS.mode.CBC,
	padding: CryptoJS.pad.Pkcs7
	});
	return decrypted.toString(CryptoJS.enc.Utf8);
	}
	//DES ECB模式加密
	function encryptByDESModeEBC(message){
	var keyHex = CryptoJS.enc.Utf8.parse(key);
	var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
	mode: CryptoJS.mode.ECB,
	padding: CryptoJS.pad.Pkcs7
	});
	return encrypted.ciphertext.toString();
	}
	//DES ECB模式解密
	function decryptByDESModeEBC(ciphertext){
	var keyHex = CryptoJS.enc.Utf8.parse(key);
	var decrypted = CryptoJS.DES.decrypt({
	ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
	}, keyHex, {
	mode: CryptoJS.mode.ECB,
	padding: CryptoJS.pad.Pkcs7
	});
	var result_value = decrypted.toString(CryptoJS.enc.Utf8);
	return result_value;
	}
	function test(){
	var source = $("#source").val();
	var cc = encryptByDESModeEBC(CryptoJS.enc.Utf8.parse(source));
	$("#target").val(cc);
	}
	
	function test1(){
	var source = $("#sourceS").val();
	var dd = decryptByDESModeEBC(source);
	$("#jiemi").val(dd);
	}
	</script>

接下来要引入DES的文件,

<script type="text/javascript" src="js/tripledes.js" ></script>
<script type="text/javascript" src="js/mode-ecb.js" ></script>

除了要引入这俩个文件外,还要引入jq文件,当然,如果你文的其他代码实现加密,里面没有用到jq就不用引起jq文件了。
然后你运行会这个错误
在这里插入图片描述
没有引入Crypto-JS文件,明明已经引入了,网上找了一些,发现还要引入一个总体的文件,就是这个

<script type="text/javascript" src="js/core.js" ></script>

这个总可以吧,结果发现还有错误,
在这里插入图片描述
未定义为 ‘extend’ 可是代码里面也没有这个,最后发现还少一个引入文件

<script type="text/javascript" src="js/cipher-core.js" ></script>

把这个引入就可以了,
还有一个值的注意,引入文件时,这个文件一定要放在最上面,不然还会报错

<script type="text/javascript" src="js/core.js" ></script>

好了,大致也就这样,希望对大家有帮助,最后代码结果
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值