JavaScript实现简单的加密解密

JavaScript实现对内容的加密和解密,相对MD5这些高深的算法,本文的加密解密就如小孩过家家。

本文的加密解密规则:加密,转成编码。解密则是编码转字符串。

详细说一说

<body>

 <h1> 加密解密 </h1>

 <input type="text" id="secret" /> 
 <input type="button" value="加密" onclick="encode()">
 <input type="button" value="解密" onclick="decode();">
 
<script>
// 加密
function encode()
{	
	// var s = secret.value;

	// s 是一个字符串, 类型: String
	// 根据 s 来创建一个字符串对象
	// str 的类型是: Object
	// var str = new String(s);

	
	// length 是获取字符串对象的长度,也就是说有多少个字符
	// str.length

	var str = secret.value;

	var r = "";

	// string 类型的可以当做字符串对象来用
	for (var i = 0; i < str.length; i++)
	{
		// 取出下标为 i 字符的编码
		var code = str.charCodeAt(i);

		// 将字符对应的编码,拼接到一个空字符串上

		r += code;
		// 每个符号后,添加 , 分割
		r += ",";
	}


	// secret.value 
	// 设置输入框的内容为 r
	secret.value = r;

}


// 使用到知识点(1)---如何将一个 数字 转换成对应的 字符
// String.fromCharCode 
// 函数功能: 将 数字 转换成对应的 字符

// String 其实是系统的一个对象
// document.write(    String.fromCharCode(97)  );


/*
var s = "97,98,99,";

// 字符串对象中  split 方法
// 作用: 按照参数 分割 字符串
// 返回值: 分割之后的  数组

var arr = s.split(",");
// 数组中多了一个空白的元素,如何处理?
// 删除数组中最后一个元素
arr.pop();

document.write(arr);
//*/



// 解密
function decode()
{
	// 获取文本框中的字符串
	// 例如: 96,97,98
	var str = secret.value;

	// 思路:
	// 1. 按照 , 分割字符串
	// 2. 将每个 分割的子字符串 转换成 数字,再转换成 字符
	//		96  97 98
	// 3. 将还原的字符,拼接在一起,再设置到 input 中去


	var arr = str.split(",");

	// 用于拼接结果的
	var r = "";

	for (var i = 0; i < arr.length; i++)
	{
		// 获取加密后的 字符串的编码,是一个数字
		var code = parseInt(arr[i]);

		r += String.fromCharCode(code);
	}

	// 将拼接后的结果,设置到 input 中
	secret.value = r;
}

</script> 
</body>

总结写成能用的函数

// 归类
function encode(str) { //加密
  var encode = "";
  str = String(str);
  for (var i = 0; i < str.length; i++) {
    var code = str.charCodeAt(i);
    encode += code;
    encode += ",";
  }
  return encode
}

function decode(str) {//解密
  var arr = str.split(","), decode = "";
  for (var i = 0; i < arr.length; i++){
    var code = parseInt(arr[i]);
    decode += String.fromCharCode(code);
  }
  return decode;
}

加密解密,无非就是具体内容和字符串的编码的转换。其实想想,如果把字符串的编码换成了别的一些相对高深一点的,会不会更好?这里只是一个开头。

加密解密还有更为高深的算法,本文只是简简单单的弄一下。希望能起到抛砖引玉的作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘来是牙云敏呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值