js 加解密方法

一:最简单的加密解密 (ansi转usc2)

  大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:

alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:

%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

  呵呵!如何?这次是完全都加密了!

  当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:

<SCRIPT LANGUAGE="JavaScript">  
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");  
eval(code)  
</SCRIPT>



  二:转义字符"\"的妙用

  大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:\n (换行)、 \r (回车)、\’ (单引号 )等应该是有所了解的吧?其实"\"后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"\141"或"\x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"\u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:

  八进制转义字符串如下:  
<SCRIPT LANGUAGE="JavaScript">  
eval("\141\154\145\162\164\50\42\u9ED1\u5BA2\u9632\u7EBF\42\51\73")  
</SCRIPT>

十六进制转义字符串如下:  
<SCRIPT LANGUAGE="JavaScript">  
eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")  
</SCRIPT>

  这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:

<SCRIPT LANGUAGE="JavaScript">  
alert("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")  
</SCRIPT>

  就会弹出对话框告诉你解密后的结果!

原文地址:https://www.cnblogs.com/Skyda/p/9911234.html

时间: 2024-10-10 09:46:23

js 加解密方法的相关文章

DES跨(C# Android IOS)三个平台通用的加解密方法

#region   跨平台加解密(c# 安卓 IOS) //  public static string sKey = "12345678"; //  /// <summary> //  /// 解密 //  /// </summary> //  /// <param name="pToDecrypt">要解密的以Base64</param> //  /// <param name="sKey"

常见加解密方法_转

转自:常用加密解密方法 一.数据加密/编码算法列表 常见用于保证安全的加密或编码算法如下: 1.常用密钥算法 密钥算法用来对敏感数据.摘要.签名等信息进行加密,常用的密钥算法包括:DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合: 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高: RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快: IDEA(International Da

加解密方法

加解密Code如下: 1 /// <summary> 2 /// 加密字符串:根据传入的字符串和密匙返回加密后的字串 3 /// </summary> 4 public static string Encrypt(string value, string key) 5 { 6 try 7 { 8 key += "[email protected]#$%^&*()"; 9 Byte[] byteCrypt = { 0x10, 0x29, 38, 0x47,

js加解密字符串

项目中经常会有url带参并取参数值的问题,最常见的就是登录后再回到原来的页面redirect_uri,我们通常会使用 encodeURIComponent() 转码,当然简单的可以这样使用,如果涉及到参数特别多,然后对参数值安全性又有一定的要求,那么就需要考虑对字符串加密了.可能通常情况下都是在服务端加密后再重定向页面,但是也不乏有直接通过js处理的,这里简要的介绍一种写法,简单实用 完整代码 https://github.com/helijun/component/blob/master/pw

[合集]各类算法的加解密方法

常见的加密算法: 对称加密(加密解密密钥相同):DES DES3 AES 非对称加密(分公钥私钥):RSA 信息摘要算法/签名算法:MD5 HMAC SHA 下面使用Python代码实现 # -*- coding:utf-8 -*- import base64 import rsa from Crypto.Cipher import AES from Crypto.PublicKey import RSA from pyDes import des, CBC, PAD_PKCS5 from Cr

C#实现AES加解密方法

using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography; using System.IO; namespace Csharp { class AESHelper { /// <summary> /// AES加密 /// </summary> /// <param name="Data">被加密的明文&l

关于Python实现Interface base64加解密方法

''' 以下Python Code运行环境为windows10, Python版本为3.5.3 涉及的库:base64,json,unittest ''' # coding=utf-8 # import requests # import hashlib import base64, json import unittest class DemoRequests(unittest.TestCase): def setUp(self): #self._url = 'http://www.baidu

js加解密的算法

//字符串和数字互转 var str="a" var r = str.charCodeAt(0); //97 10进制 console.log(r); var t=String.fromCharCode(r); console.log(t); //a

.net core中使用openssl的公钥私钥进行加解密

这篇博文分享的是 C#中使用OpenSSL的公钥加密/私钥解密 一文中的解决方法在 .net core 中的改进.之前的博文针对的是 .NET Framework ,加解密用的是 RSACryptoServiceProvider .虽然在 corefx(.NET Core Framework) 中也有 RSACryptoServiceProvider ,但它目前只支持 Windows ,不能跨平台. 之前的 new RSACryptoServiceProvider(); 代码在 mac 上运行,