字符串的加密与解密

本文介绍了JavaScript中的多种编码与解码方法,包括escape/unescape、encodeURI/decodeURI及encodeURIComponent/decodeURIComponent等函数的使用场景与区别,并简要提及了Unicode编码与自定义加密方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、JavaScript预定义编码与解码方法

字符串常规编码与解码——escape()和unescape()
 
<script>
    var str = 'HTML5 Free自由者';
    str = escape(str);
    console.log(str);     // HTML5%20Free%u81EA%u7531%u8005
    str = unescape(str); 
    console.log(str);     // HTML5自由者
</script>

  escape()方法是不完全编码的方法,它仅能将字符串中某些字符替换为十六进制的转义序列。就是除了ASCII字母,数字和标点符号 (如 - _ . ~ * ' 、( )) 之外,所有字符都被转换为%xx或%uxxxx的转义序列。

URI字符串编码和解码——encodeURI()和decodeURI()

ECMAScript v3.0从标准中删除了 escape()和unescape(),推荐使用 encodeURI()和decodeURI()

<script>
   var str = 'HTML5 Free自由者';
   str = encodeURI(str);
   console.log(str);     // HTML5%20Free%E8%87%AA%E7%94%B1%E8%80%85
   str = decodeURI(str);
   console.log(str);     // HTML5 Free自由者
</script>

区别:

方法也与escape()方法相同,对于ASCII字母,数字和标点符号 (如 - _ . ~ * ' 、( )) 也不会编码。 相对来说encodeURI方法更安全,它能够将字符转换为UTF-8编码字符,然后用十六进制的转义序列(形式为%xx)形成生成的一个、两个或者3个字节的字符编码。

URI组件编码和解码——encodeURIComponent()和decodeURIComponent()

<script>  
   var str= 'http://weibo.com/putins';
   str1 = encodeURI(str);
   console.log(str1);   // http://weibo.com/putins
   str2 = encodeURIComponent(str);
   console.log(str2);   // http%3A%2F%2Fweibo.com%2Fputins
   str3 = decodeURIComponent(str2);
   console.log(str3);   // http://weibo.com/putins 
</script> 

区别:

同escapeURI()方法相同,encodeURIComponent()方法对于ASCII字母,数字和标点符号(如-_.~*'、())也不会编码,但是对于其他字符(如/#)这样的分隔符URI各种组件的标点符号,都由一个或多个十六进制的转义序列替换。

二、Unicode编码与解码

所谓Unicode编码就是根据字符在Unicode字符表中的编号对字符进行简单的编码,从而实现对信息进行加密。

【略写】

三、自定义加密和解密方法

【略写】




  @Huan艺斌  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值