Javascript加密及解密字符串

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
	
    <script type="text/javascript" src="js/core-min.js"></script>
<script type="text/javascript" src="js/aes.js"></script>
<script type="text/javascript" src="common.js"></script>
        <script  type="text/javascript" >
        function jia(){
        	var array=encrypt(document.getElementById("old").value,"我是可以随机生成的私钥!");
        	document.getElementById("key").value=array[0];
        	document.getElementById("new").value=array[1];
        }
        function jie(){
        	var old=decrypt(document.getElementById("new").value,document.getElementById("key").value);
         	document.getElementById("div").value=unescape(old);
        }
        </script>
</head>
<body>
<form action="" method="POST" style="margin:20px;padding:20px;" align="center">
<input type="text" value="" id="old"/>
<input type="button" value="加密" οnclick="jia();"/>
<input type="text" value="" id="new"/>
<input type="hidden" id="key">
<input type="button" value="解密" οnclick="jie()"/>
<input type="text" id="div"  value=""/>
</form>
</body>
</html>

此加密及解密是用AES方式需要引入 aes.js、core-min.js文件

自定义 common.js 

/**
 * 
 * @param encryptchar 加密字符
 * @param key 加密私钥
 * @return
 */
function encrypt(encryptchar,key){
	if(encryptchar==""||key==""){
		alert("加密字符或私钥为空!");
		return;
	}
	var array=new Array();
	array[0]=key;
	array[1]=CryptoJS.AES.encrypt(encryptchar,key);;
	return array;
}
/**
 * 
 * @param char 密文
 * @param key 解密私钥
 * @return
 */
function decrypt(char,key){
	if(char==""||key==""){
		alert("密文或私钥为空!");
		return;
	}
	return CryptoJS.AES.decrypt(char,key).toString(CryptoJS.enc.Utf8);
}

下载附件


Node.js 提供了多种加密算法,可以用于字符串加密解密。以下是一些常见的加密算法及其使用方法: 1. md5 加密 md5 是一种单向加密算法,可以将任意长度的字符串加密为一个固定长度的字符串。Node.js 中的 crypto 模块提供了 md5 加密算法。以下是一个示例代码片段: ```javascript const crypto = require('crypto'); const str = 'Hello, World!'; const hash = crypto.createHash('md5').update(str).digest('hex'); console.log(hash); ``` 在这个例子中,str 是要加密字符串,crypto.createHash('md5') 创建了一个 md5 加密器,update() 方法用于向加密器输入数据,digest('hex') 方法用于输出加密结果。最终输出的结果是一个 32 位的十六进制字符串。 2. sha256 加密 sha256 是一种单向加密算法,可以将任意长度的字符串加密为一个固定长度的字符串。Node.js 中的 crypto 模块提供了 sha256 加密算法。以下是一个示例代码片段: ```javascript const crypto = require('crypto'); const str = 'Hello, World!'; const hash = crypto.createHash('sha256').update(str).digest('hex'); console.log(hash); ``` 在这个例子中,str 是要加密字符串,crypto.createHash('sha256') 创建了一个 sha256 加密器,update() 方法用于向加密器输入数据,digest('hex') 方法用于输出加密结果。最终输出的结果是一个 64 位的十六进制字符串。 3. aes-256-cbc 加密 aes-256-cbc 是一种对称加密算法,可以将任意长度的字符串加密为一个固定长度的字符串,同样也可以将加密后的字符串解密为原始字符串。Node.js 中的 crypto 模块提供了 aes-256-cbc 加密算法。以下是一个示例代码片段: ```javascript const crypto = require('crypto'); const str = 'Hello, World!'; const key = 'mySecretKey'; const iv = 'myInitializationVector'; const cipher = crypto.createCipheriv('aes-256-cbc', key, iv); let encrypted = cipher.update(str, 'utf8', 'hex'); encrypted += cipher.final('hex'); console.log(encrypted); const decipher = crypto.createDecipheriv('aes-256-cbc', key, iv); let decrypted = decipher.update(encrypted, 'hex', 'utf8'); decrypted += decipher.final('utf8'); console.log(decrypted); ``` 在这个例子中,str 是要加密字符串,key 是加密密钥,iv 是初始化向量。crypto.createCipheriv() 方法用于创建一个加密器,update() 方法用于向加密器输入数据,final() 方法用于输出加密结果。crypto.createDecipheriv() 方法用于创建一个解密器,update() 方法用于向解密器输入数据,final() 方法用于输出解密结果。最终输出的结果应该是原始字符串。 这只是一些常见的加密算法和使用方法,Node.js 中的 crypto 模块还提供了很多其他的加密算法,需要根据具体的需求选择合适的加密算法。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值