HTML七种加密解密方法
常用字符串加密解密方法
常⽤字符串加密解密⽅法using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Security.Cryptography;using System.Text;using System.Text.RegularExpressions;using System.Web.Security;namespace HuaTong.General.Utility{/// <summary>/// 加密⼯具类/// </summary>public class EncryptHelper{//默认密钥private static string AESKey = "[45/*YUIdse..e;]";private static string DESKey = "[&HdN72]";/// <summary>/// AES加密/// </summary>public static string AESEncrypt(string value, string _aeskey = null){if (string.IsNullOrEmpty(_aeskey)){_aeskey = AESKey;}byte[] keyArray = Encoding.UTF8.GetBytes(_aeskey);byte[] toEncryptArray = Encoding.UTF8.GetBytes(value);RijndaelManaged rDel = new RijndaelManaged();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateEncryptor();byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);return Convert.ToBase64String(resultArray, 0, resultArray.Length);}/// <summary>/// AES解密/// </summary>public static string AESDecrypt(string value, string _aeskey = null){try{if (string.IsNullOrEmpty(_aeskey)){_aeskey = AESKey;}byte[] keyArray = Encoding.UTF8.GetBytes(_aeskey);byte[] toEncryptArray = Convert.FromBase64String(value);RijndaelManaged rDel = new RijndaelManaged();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateDecryptor();byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);return Encoding.UTF8.GetString(resultArray);}catch{return string.Empty;}}/// <summary>/// DES加密/// </summary>public static string DESEncrypt(string value, string _deskey = null){if (string.IsNullOrEmpty(_deskey)){_deskey = DESKey;}byte[] keyArray = Encoding.UTF8.GetBytes(_deskey);byte[] toEncryptArray = Encoding.UTF8.GetBytes(value);DESCryptoServiceProvider rDel = new DESCryptoServiceProvider();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateEncryptor();byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length);}/// <summary>/// DES解密/// </summary>public static string DESDecrypt(string value, string _deskey = null){try{if (string.IsNullOrEmpty(_deskey)){_deskey = DESKey;}byte[] keyArray = Encoding.UTF8.GetBytes(_deskey);byte[] toEncryptArray = Convert.FromBase64String(value);DESCryptoServiceProvider rDel = new DESCryptoServiceProvider();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateDecryptor();byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Encoding.UTF8.GetString(resultArray);}catch{return string.Empty;}}public static string MD5(string value){byte[] result = Encoding.UTF8.GetBytes(value);MD5 md5 = new MD5CryptoServiceProvider();byte[] output = puteHash(result);return BitConverter.ToString(output).Replace("-", "");}public static string HMACMD5(string value, string hmacKey){HMACSHA1 hmacsha1 = new HMACSHA1(Encoding.UTF8.GetBytes(hmacKey));byte[] result = System.Text.Encoding.UTF8.GetBytes(value);byte[] output = puteHash(result);return BitConverter.ToString(output).Replace("-", "");}/// <summary>/// base64编码/// </summary>/// <returns></returns>public static string Base64Encode(string value){string result = Convert.ToBase64String(Encoding.Default.GetBytes(value));return result;}/// <summary>/// base64解码/// </summary>/// <returns></returns>public static string Base64Decode(string value){string result = Encoding.Default.GetString(Convert.FromBase64String(value));return result;}} }。
jquery 常见的字符串加解密方法
jquery 常见的字符串加解密方法jQuery常见的字符串加解密方法在前端开发中,数据的安全性至关重要。
为了保护敏感数据,开发人员需要使用加密和解密技术。
jQuery是一款流行的JavaScript库,它提供了一些常见的字符串加解密方法,可以帮助开发人员实现数据的安全传输和存储。
本文将介绍几种常见的字符串加解密方法,帮助读者了解如何使用jQuery保护数据安全。
一、Base64编码解码Base64是一种常见的编码方式,它将二进制数据转换为可打印的ASCII字符。
在前端开发中,Base64常用于加密URL、图片和其他敏感数据。
通过使用jQuery提供的方法,我们可以很方便地进行Base64编码和解码操作。
1.1 Base64编码```javascriptvar encodedString = $.base64.encode("Hello, World!");```1.2 Base64解码```javascriptvar decodedString = $.base64.decode("SGVsbG8sIFdvcmxkIQ==");```二、MD5加密MD5是一种常见的哈希算法,它将任意长度的数据转换为固定长度的字符串。
在前端开发中,MD5常用于对密码等敏感信息进行加密。
虽然MD5是不可逆的,但它可以通过与已知的哈希值进行比对来验证数据的正确性。
```javascriptvar encryptedString = $.md5("Hello, World!");```三、AES加解密AES(Advanced Encryption Standard)是一种对称加密算法,它可以对大块数据进行高效加解密操作。
在前端开发中,AES常用于保护敏感数据的传输和存储。
通过使用一些jQuery插件,我们可以方便地进行AES加解密操作。
3.1 AES加密首先,我们需要引入相关的插件文件,例如CryptoJS。
加密文件和解密方法
加密文件和解密方法加密和解密是信息安全领域的重要概念,用于保护敏感信息的安全性。
本文将介绍几种常见的文件加密和解密方法,并简要说明它们的原理和适用情景。
一、对称加密算法对称加密算法使用相同的密钥对文件进行加密和解密。
常见的对称加密算法有DES、AES和3DES等。
DES(Data Encryption Standard)是一种采用对称密钥加密的块加密算法,密钥长度为64位。
由于DES的密钥长度较短,因此安全性相对较低,现已不推荐使用。
AES(Advanced Encryption Standard)是一种高级加密标准,是目前使用范围最广泛的对称加密算法。
AES可以采用128位、192位或256位密钥长度,具有较高的安全性和较快的加密速度。
3DES(Triple Data Encryption Standard)是DES的增强版,使用3个不同的密钥对数据进行3次加密和3次解密。
由于强化了密钥长度,3DES的安全性较DES有所提高。
对称加密算法的优点是加密和解密速度快,适用于大文件的加密和解密。
但由于密钥的传输和管理问题,对称加密算法在网络传输中存在安全隐患。
二、非对称加密算法非对称加密算法使用不同的密钥对文件进行加密和解密。
常见的非对称加密算法有RSA和DSA等。
RSA(Rivest-Shamir-Adleman)是一种基于大数因子分解的非对称加密算法,其加密和解密过程使用不同的密钥对。
RSA算法的安全性基于大数分解的难题,其密钥长度可选1024位、2048位或4096位。
DSA(Digital Signature Algorithm)是一种基于离散对数问题的非对称加密算法,主要用于数字签名和认证。
DSA算法的安全性基于DL(离散对数问题)的难题,密钥长度通常为1024位或2048位。
非对称加密算法的优点是密钥传输安全,并且可以实现数字签名等功能。
但由于计算复杂度较高,非对称加密算法处理大文件时速度较慢。
代码加密方法 -回复
代码加密方法-回复代码加密方法是一种保护计算机程序和数据安全的重要手段。
在信息化时代,计算机程序广泛应用于各个领域,包括电子商务、金融交易、游戏娱乐等,将一些敏感的代码进行加密处理有助于防止黑客攻击、源代码的泄露以及非法复制等风险。
本文将逐步介绍几种常见的代码加密方法。
首先,我们可以采用简单的替换加密方法。
替换加密是一种基础而常用的加密技术,它通过用其他字符替换原来的字符来改变代码的可读性。
一种简单的方式是将每个字符替换为其后面的第三个字符,即将a替换为d,b替换为e,以此类推。
这种方法的优点是加密速度快,但安全性较低,容易被破解。
其次,我们可以采用位移加密方法。
位移加密是一种基于二进制操作的加密技术,它通过将每个字符的ASCII码值向左或向右位移一定的位数来改变代码的可读性。
例如,我们可以将每个字符的ASCII码值向左位移两位,即将a的ASCII码值97位移为95,b的ASCII码值98位移为96,以此类推。
这种方法的优点是安全性相对较高,但加密后的代码仍然可以通过分析进行破解。
第三,我们可以采用混淆加密方法。
混淆加密是一种将代码进行混合和重组的加密技术,它通过改变代码的结构和顺序来增加破解的难度。
例如,我们可以将代码中的函数和变量进行随机重命名,将条件语句和循环语句进行交换,以及对代码进行重排等操作。
这种方法的优点是加密后的代码难以理解和分析,但加密和解密的过程相对复杂,容易引入错误。
最后,我们可以采用对称加密方法。
对称加密是一种使用相同的密钥进行加密和解密的加密技术,它通过将代码和数据加密成密文,只有通过正确的密钥才能将密文解密还原为原始代码和数据。
常见的对称加密算法包括DES、AES等。
这种方法的优点是安全性高,但密钥的管理和分发较为复杂。
总结来说,代码加密是保护计算机程序和数据安全的重要手段。
我们可以采用简单的替换加密方法、位移加密方法、混淆加密方法以及对称加密方法等来加密代码。
不同的加密方法有着不同的优缺点,我们需要根据实际需求和安全性要求来选择适合的加密方式。
浅谈常见的七种加密算法及实现
浅谈常见的七种加密算法及实现前⾔数字签名、信息加密是前后端开发都经常需要使⽤到的技术,应⽤场景包括了⽤户登⼊、交易、信息通讯、oauth等等,不同的应⽤场景也会需要使⽤到不同的签名加密算法,或者需要搭配不⼀样的签名加密算法来达到业务⽬标。
这⾥简单的给⼤家介绍⼏种常见的签名加密算法和⼀些典型场景下的应⽤。
正⽂1. 数字签名数字签名,简单来说就是通过提供可鉴别的数字信息验证⾃⾝⾝份的⼀种⽅式。
⼀套数字签名通常定义两种互补的运算,⼀个⽤于签名,另⼀个⽤于验证。
分别由发送者持有能够代表⾃⼰⾝份的私钥 (私钥不可泄露),由接受者持有与私钥对应的公钥,能够在接受到来⾃发送者信息时⽤于验证其⾝份。
注意:图中加密过程有别于公钥加密,更多。
签名最根本的⽤途是要能够唯⼀证明发送⽅的⾝份,防⽌中间⼈攻击、CSRF跨域⾝份伪造。
基于这⼀点在诸如设备认证、⽤户认证、第三⽅认证等认证体系中都会使⽤到签名算法 (彼此的实现⽅式可能会有差异)。
2. 加密和解密2.1. 加密数据加密的基本过程,就是对原来为明⽂的⽂件或数据按某种算法进⾏处理,使其成为不可读的⼀段代码,通常称为 “密⽂”。
通过这样的途径,来达到保护数据不被⾮法⼈窃取、阅读的⽬的。
2.2. 解密加密的逆过程为解密,即将该编码信息转化为其原来数据的过程。
3. 对称加密和⾮对称加密加密算法分对称加密和⾮对称加密,其中对称加密算法的加密与解密密钥相同,⾮对称加密算法的加密密钥与解密密钥不同,此外,还有⼀类不需要密钥的散列算法。
常见的对称加密算法主要有DES、3DES、AES等,常见的⾮对称算法主要有RSA、DSA等,散列算法主要有SHA-1、MD5等。
3.1. 对称加密对称加密算法是应⽤较早的加密算法,⼜称为共享密钥加密算法。
在对称加密算法中,使⽤的密钥只有⼀个,发送和接收双⽅都使⽤这个密钥对数据进⾏加密和解密。
这就要求加密和解密⽅事先都必须知道加密的密钥。
1. 数据加密过程:在对称加密算法中,数据发送⽅将明⽂ (原始数据) 和加密密钥⼀起经过特殊加密处理,⽣成复杂的加密密⽂进⾏发送。
JS七种加密解密方法
JS七种加密解密方法JS中常见的加密解密方法有七种,分别是Base64编码、MD5加密、SHA1加密、AES加密、RSA加密、HMAC加密和URL编码。
一、Base64编码Base64编码示例:```javascriptlet text = 'Hello World!';let encodedText = btoa(text);console.log(encodedText); // "SGVsbG8gV29ybGQh"```Base64解码示例:```javascriptlet encodedText = 'SGVsbG8gV29ybGQh';let decodedText = atob(encodedText);console.log(decodedText); // "Hello World!"```二、MD5加密MD5是一种常用的哈希加密算法,可以将任意长度的数据转换成固定长度的哈希值。
在JS中,可以使用第三方库`crypto-js`来进行MD5加密。
MD5加密示例:```javascriptlet text = 'Hello World!';let encryptedText = CryptoJS.MD5(text).toString(;```三、SHA1加密SHA1也是一种常用的哈希加密算法,可以将任意长度的数据转换成固定长度的哈希值。
在JS中,可以使用第三方库`crypto-js`来进行SHA1加密。
SHA1加密示例:```javascriptlet text = 'Hello World!';let encryptedText = CryptoJS.SHA1(text).toString(;```四、AES加密AES是一种对称加密算法,可以用于加密和解密数据。
在JS中,可以使用第三方库`crypto-js`来进行AES加密。
了解编程中的五个保密编码方法
了解编程中的五个保密编码方法在编程中,保密编码方法是为了保护数据和信息的安全性,防止被未经授权的用户获取或窃取。
以下是五个常用的保密编码方法。
1.对称加密对称加密方法是将数据和信息使用相同的密钥进行加密和解密。
发送者和接收者必须共享相同的密钥。
在加密过程中,明文通过密钥转换为密文,而在解密过程中,密文通过相同的密钥恢复为明文。
对称加密的优点是加密和解密速度快,但密钥的共享需要安全通道。
2.非对称加密非对称加密方法使用一对密钥,分别是公钥和私钥。
公钥可以在公共网络中传输,而私钥只有接收者可以访问。
发送者使用接收者的公钥对数据和信息进行加密,只有接收者使用他们的私钥才能解密加密的数据。
非对称加密的优点是密钥的传输不需要安全通道,但加密和解密的速度较慢。
3.哈希函数哈希函数是一种将不同长度的输入数据转换为固定长度输出的算法。
哈希函数的输出值称为哈希值,具有唯一性和不可逆性,即无法从哈希值反推出原始数据。
哈希函数常用于密码存储、数字签名和数据完整性验证等场景。
常用的哈希函数包括MD5、SHA-1和SHA-256等。
4.混淆编码混淆编码方法是将数据和信息进行复杂的转换,使其难以被理解。
常见的混淆编码方法包括Base64编码和URL编码。
Base64编码将数据和信息转换为由大小写字母、数字和特殊字符组成的字符串;URL编码将特殊字符转换为%加上对应字符的ASCII码值。
混淆编码方法只是将数据和信息进行转换,并不能提供真正的加密和安全保护。
5.数据加密标准(DES, AES等)数据加密标准是一组广泛应用于数据和信息加密的对称密钥加密算法。
其中,DES(Data Encryption Standard)是一种对称加密算法,使用56位密钥对数据进行加密和解密;而AES(Advanced Encryption Standard)是一种高级加密标准,使用128、192或256位密钥进行加密和解密。
这些加密标准广泛应用于网络通信、数据存储和安全传输等领域。
JavaScript加密解密7种方法
本文一共介绍了七种javascript加密方法:在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE 运行的javascript代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^但我们也应该清楚地认识到因为javascript代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中javascript 代码的加密解密技术。
以加密下面的javascript代码为例:<SCRIPT LANGUAGE="javascript">alert("《我爱一起》");</SCRIPT>一:最简单的加密解密大家对于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">varcode=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");eval(code)</SCRIPT>是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵二:转义字符""的妙用大家可能对转义字符""不太熟悉,但对于javascript提供了一些特殊字符如:n (换行)、r (回车)、' (单引号)等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:八进制转义字符串如下:<SCRIPT LANGUAGE="javascript">eval("1411541451621645042u9ED1u5BA2u9632u7EBF425173")</SCRIPT>十六进制转义字符串如下:<SCRIPT LANGUAGE="javascript">eval("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")</SCRIPT>这次没有了解码函数,因为javascript执行时会自行转换,同样解码也是很简单如下:<SCRIPT LANGUAGE="javascript">alert("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")</SCRIPT>就会弹出对话框告诉你解密后的结果!三:使用Microsoft出品的脚本编码器Script Encoder来进行编码工具的使用就不多介绍啦!我是直接使用javascript调用控件Scripting.Encoder完成的编码!代码如下:<SCRIPT LANGUAGE="javascript">var Senc=new ActiveXObject("Scripting.Encoder");var code='<SCRIPT LANGUAGE="javascript">rnalert("《我爱一起》");rn</SCRIPT>';var Encode=Senc.EncodeScriptFile(".htm",code,0,"");alert(Encode);</SCRIPT>编码后的结果如下:<SCRIPT LANGUAGE="JScript.Encode">#@~^FgAAAA==@#@&ls•DD`J黑客防线r#p@#@&FgMAAA==^#~@</SCRIPT>够难看懂得吧?但相应的解密工具早已出来,而且连解密网页都有!因为其解密网页代码过多,我就不多说拉!给大家介绍一下我独创的解密代码,如下:<SCRIPT LANGUAGE="JScript.Encode">function decode()alert(decode.toString());</SCRIPT>咋样?够简单吧?它是原理是:编码后的代码运行前IE会先对其进行解码,如果我们先把加密的代码放入一个自定义函数如上面的decode()中,然后对自定义函数decode调用toString()方法,得到的将是解码后的代码!如果你觉得这样编码得到的代码LANGUAGE属性是JScript.Encode,很容易让人识破,那么还有一个几乎不为人知的window对象的方法execScript(),其原形为:window.execScript( sExpression, sLanguage )参数:sExpression:必选项。
ioncube解密方法
ioncube解密方法ionCube是一种用于加密和保护PHP脚本的工具,它通过对PHP代码进行编码和混淆,使得脚本文件无法直接阅读和修改。
然而,有时候我们可能需要解密ionCube加密过的脚本,以便进行修改、调试或扩展。
下面是一些常用的ionCube解密方法。
1. 使用ionCube解密工具:一些开发者开发了一些专门用于解密ionCube加密脚本的工具,如UnLoader和IonCube_deobfuscator。
这些工具可以通过解码和还原ionCube加密的脚本,使其变得可读。
2. 使用ionCube解密服务:一些公司或个人提供ionCube解密服务,他们通常有专门的团队和技术,可以解密各种类型的ionCube加密脚本。
你可以通过向这些服务商提交你的加密脚本,并支付一定的费用,他们会为你提供解密后的脚本文件。
3. 反编译:ionCube加密的脚本经过编码和混淆,使其难以直接解密。
但是通过反编译可以将编译后的代码还原成源代码,从而实现解密。
反编译的过程较为复杂,需要一定的编程和逆向工程知识,可以使用一些专门的逆向工程工具,如IDA Pro、OllyDbg等。
4. 手动解密:对于一些简单的ionCube加密脚本,可以通过手动解密来获取原始代码。
手动解密的方法是通过分析加密脚本的结构和逻辑,逐步还原出原始代码。
这需要对PHP和ionCube加密算法有一定的了解和经验。
总结一下,解密ionCube加密脚本的方法有:使用专门的解密工具,借助解密服务,进行反编译,以及手动解密。
然而,需要注意的是,解密ionCube加密脚本可能涉及到版权和法律问题,在进行解密之前,应该确保自己有解密的合法权益。
同时,解密加密脚本也是一种技术活动,需要具备相关的知识和经验。
最后,强烈建议开发者在编写PHP脚本时,采取其他更可靠的方式来保护脚本的安全性,如代码混淆、许可证限制等。
HTML七种加密解密方法
HTML七种加密解密方法HTML是一种标记语言,主要用于创建和设计互联网页面。
HTML并不是一种加密解密的语言,它主要用于结构化文档的展示和呈现。
然而,在HTML中可以使用编码和加密算法来保护敏感信息或者增加数据安全性。
在以下内容中,我将介绍七种常见的HTML中使用的加密解密方法。
1. Base64编码Base64编码是一种基于64个字符的编码方法,可以将二进制数据转换为可打印的ASCII字符。
在HTML中可以使用Base64编码来保护敏感信息,例如在图片或音频文件中使用Base64编码来嵌入文件内容,以防止文件被直接访问。
2.URL编码3.MD5哈希算法MD5是一种广泛使用的哈希算法,可以将任意长度的输入数据转换为128位的哈希值。
在HTML中,可以使用JavaScript的CryptoJS库来实现MD5哈希算法。
常见用途包括对密码进行哈希存储以增加安全性,或者对数据进行完整性校验。
4.AES对称加密算法AES是一种对称加密算法,可以对数据进行加密和解密。
在HTML中,可以使用JavaScript的CryptoJS库来实现AES加密算法。
常见用途包括对敏感数据进行加密传输,以及在浏览器端进行本地数据的加密存储。
5.RSA非对称加密算法RSA是一种非对称加密算法,通过公钥加密、私钥解密的方式实现数据的保护。
在HTML中,可以使用JavaScript的CryptoJS库实现RSA算法。
常见用途包括在客户端和服务器之间传输敏感数据时使用公钥加密,确保只有持有私钥的服务器可以解密数据。
6.XOR加密算法XOR是一种基于位运算的加密算法,通过将明文和密钥进行异或运算来实现加密。
在HTML中,可以使用JavaScript的Bitwise XOR运算符(^)来实现XOR加密算法。
常见用途包括简单的数据加密和解密,提供基本的数据安全性。
7.单向哈希算法单向哈希算法是一种只能进行加密而不能进行解密的算法,常见的有SHA系列算法。
用数据加密和解密方法汇总
用数据加密和解密方法汇总数据加密和解密是信息安全领域中的重要概念,用于保护敏感数据免受未经授权的访问。
下面将介绍一些常见的数据加密和解密方法。
1.对称加密算法:对称加密算法使用同一个密钥进行加密和解密过程。
其中最常见的对称加密算法是DES(Data Encryption Standard)和AES(Advanced Encryption Standard)。
在DES中,数据被切分成64位的块,在每个块上应用相同的密钥进行加密和解密。
AES使用128位、192位或256位的密钥,并且在每个轮次中应用不同的变换操作。
2.非对称加密算法:非对称加密算法(也称为公钥密码算法)使用一对密钥,包括公钥和私钥。
公钥用于加密数据,而私钥用于解密数据。
最常见的非对称加密算法是RSA(Rivest-Shamir-Adleman)算法。
在RSA中,公钥由质数生成,并且其安全性基于大整数分解问题。
3.哈希函数:哈希函数是一种将输入数据映射为固定长度哈希值的加密算法。
最常见的哈希函数是MD5(Message Digest Algorithm 5)和SHA(Secure Hash Algorithm)系列。
哈希函数通常用于验证数据完整性和生成数字指纹。
由于其单向性质,哈希函数在数据加密中也被用于密码存储和身份验证。
4.数字签名:5.数字证书:数字证书是一种由第三方机构(证书颁发机构)签名的包含公钥和其他相关信息的电子文件。
数字证书用于验证公钥的真实性和完整性,并且在传输公钥时起到保护作用。
最常见的数字证书标准是X.5096.VPN加密:虚拟私人网络(VPN)是一种通过加密和隧道传输技术,将组织内部网络与互联网连接起来的安全通信方式。
VPN使用对称加密算法、非对称加密算法和数字证书等技术来加密和解密传输的数据。
7.SSL/TLS协议:SSL(Secure Sockets Layer)和TLS(Transport Layer Security)是一种保护网络通信的加密协议。
几种字符串加密解密的方法
⼏种字符串加密解密的⽅法第⼀种:〔 Python 与 Bash Shell 的结合〕这个命令会让你输⼊⼀个字符串,然后会再输出⼀串加密了的数字。
加密代码[照直输⼊]:python -c 'print reduce(lambda a,b: a*256+ord(b), raw_input("string: "), 0)'解密代码[数字后+P]:dc -e 输出的数字P第⼆种:〔应该是纯 Bash Shell,含 VIM 的 xxd 〕⽤ gtalk@ 作为明⽂,加密分两步,当然了,也是可以⼀步过的,呆会说~加密代码:1、echo "gtalk@" |xxd -ps -u得到:6774616C6B40676D61696C2E636F6D0A2、echo "ibase=16; 6774616C6B40676D61696C2E636F6D0A" |bc得到:137514765985002236391382606438443478282⼀步加密代码:echo "ibase=16; $(echo "gtalk@" |xxd -ps -u)" |bc得到:137514765985002236391382606438443478282解密代码:3、dc -e 137514765985002236391382606438443478282P得到:gtalk@第三种:〔 Base64 编码,这个很好很强⼤,适合写加密脚本〕同样⽤ gtalk@ 作为明⽂,来看代码:加密代码:echo "gtalk@" |base64 -i得到:Z3RhbGtAZ21haWwuY29tCg==解密代码:echo "Z3RhbGtAZ21haWwuY29tCg==" |base64 -d得到:gtalk@⽤shell脚本对系统进⾏⾃动化维护,简单,便捷⽽且可移植性好.但shell脚本是可读写的,很有可能会泄露敏感信息,如⽤户名,密码,路径,IP等.同样,在shell脚本运⾏时会也泄露敏感信息.请问如何不影响脚本运⾏的前提下,对脚本进⾏加密?⼀、shc⽅法shc是⼀个加密shell脚本的⼯具.它的作⽤是把shell脚本转换为⼀个可执⾏的⼆进制⽂件,这就很好的解决了上述问题. yum安装:yum -y install shc编译安装:wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgztar xvfz shc-3.8.7.tgzcd shc-3.8.7make验证shc是否正确安装[root@martin shc-3.8.7]# ./shc -vshc parse(-f): No source file specifiedshc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script创建⼀个⽰例Shell脚本[root@martin shc-3.8.7]# vi random.sh#!/bin/bashread -p "How many random numbers do you want to generate?" maxfor (( start = 1; start <= $max; start++ ))doecho -e $RANDOMdone给脚本增加可执⾏权限[root@martin shc-3.8.7]# chmod u+x random.sh执⾏⽰例脚本[root@martin shc-3.8.7]# ./random.shHow many random numbers do you want to generate?31423595557671使⽤shc加密Shell脚本[root@martin shc-3.8.7]# ./shc -v -r -T -f random.shshc shll=bashshc [-i]=-cshc [-x]=exec '%s' "$@"shc [-l]=shc opts=shc: cc random.sh.x.c -o random.sh.xshc: strip random.sh.xshc: chmod go-r random.sh.x运⾏后会⽣成两个⽂件,script-name.x 和 script-name.x.cscript-name.x是加密后的可执⾏的⼆进制⽂件script-name.x.c是⽣成script-name.x的原⽂件(c语⾔)[root@martin shc-3.8.7]# ll random.sh*-rwxr-xr-x 1 root root 146 Aug 2 10:26 random.sh-rwx--x--x 1 root root 9424 Aug 2 10:30 random.sh.x-rw-r--r-- 1 root root 10080 Aug 2 10:30 random.sh.x.c执⾏加密后的脚本[root@martin shc-3.8.7]# ./random.sh.xHow many random numbers do you want to generate?3289552148729513还不完善,只能全路径执⾏shc命令或者进⼊⽬录内,加⼊全局环境变量/etc/profile未⽣效⼆、gzexe它是使⽤系统⾃带的gzexe程序,它不但加密,同时压缩⽂件这种加密⽅式不是⾮常保险的⽅法,但是能够满⾜⼀般的加密⽤途,可以隐蔽脚本中的密码等信息。
js加密解密方法
js加密解密方法JavaScript是一种流行的编程语言,它可以用于创建和处理加密算法。
在本文中,将介绍一些常见的JavaScript加密和解密方法。
1. Base64加密/解密Base64是一种基于64个可打印字符来表示二进制数据的方法。
在JavaScript中,可以使用btoa()函数将字符串转换为Base64编码,使用atob()函数将Base64编码转换为字符串。
例如:```//加密var str = 'hello world';var base64 = btoa(str);console.log(base64); //'aGVsbG8gd29ybGQ='//解密var decode = atob(base64);console.log(decode); //'hello world'```2. MD5加密MD5是一种常用的哈希算法,用于将任意长度的消息压缩为一个128位的哈希值。
在JavaScript中,可以使用CryptoJS库中的MD5函数进行加密。
例如:```//加密var str = 'hello world';var md5 = CryptoJS.MD5(str).toString();console.log(md5); //'5eb63bbbe01eeed093cb22bb8f5acdc3'```3. AES加密/解密AES是一种高级加密标准,常用于对敏感数据进行加密。
在JavaScript中,可以使用CryptoJS库中的AES函数进行加密和解密。
例如:```//加密var str = 'hello world';var key = CryptoJS.enc.Utf8.parse('1234567890123456');var iv = CryptoJS.enc.Utf8.parse('1234567890123456');var encrypted = CryptoJS.AES.encrypt(str, key, { iv:iv }).toString();console.log(encrypted);//'U2FsdGVkX1+9Twb8fZyGJmzq3f/TW1O1'//解密var decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv: iv }).toString(CryptoJS.enc.Utf8);console.log(decrypted); //'hello world'```以上是一些常见的JavaScript加密和解密方法,使用这些方法可以保护敏感数据的安全性。
[转载]HTML代码加密解密保护
[转载]HTML代码加密解密保护xue xi le原⽂地址:HTML代码加密解密保护作者:USID[-调取原代码的⽅法-]1:右键 - 查看原⽂件2:查看 - 原⽂件3:⽂件 - 另存为4:IE缓存5:还可以通过代码提取教程代码:<SCRIPT>function add(){var ress=document.forms[0].it315zhangxx.valuewindow.location="view-source:"+ress;}</SCRIPT> <p>在⽹页源代码查看器中输⼊要查看⽹页源代码的URL地址: <p> <FORM><INPUT name=it315zhangxx size=56 value=http://></FORM><FORM><BR><INPUT onclick=add() type=button value=查看⽹页源代码></FORM>[-关于保护-]先通过代码来禁⽌IE的⼀些操作:禁⽌另存为<NOSCRIPT><IFRAME SRC=*.html></IFRAME></NOSCRIPT>:取消选取、防⽌复制不准粘贴防⽌复制><BODY onselectstart="return false" oncut="return false;" onpaste="return false" onmouseover="window.status=' ';return true" oncopy="return false;" bgColor=#ffffff leftMargin=0 topMargin=0>:禁⽌右键><SCRIPT language=JavaScript><!--if (window.Event)document.captureEvents(Event.MOUSEUP);function nocontextmenu(){event.cancelBubble = trueevent.returnValue = false;return false;}function norightclick(e){if (window.Event){if (e.which == 2 || e.which == 3) return false;}elseif (event.button == 2 || event.button == 3){ event.cancelBubble = true event.returnValue = false; return false;}}document.oncontextmenu = nocontextmenu; // for IE5+document.onmousedown = norightclick; // for all others//--></SCRIPT>:状态栏固定<body bgcolor="#fef4d9" onmouseover="self.status='⾃定义资料';return true">:禁⽌缓存在页⾯中使⽤HTML标记,如下⾯:<META http-equiv=Pragma content=no-cache><META http-equiv=Cache-Control content=no-cache><META http-equiv=Expires content=0>-利⽤上⾯的代码可以禁⽌下⾯⼏种⼿段-1:右键 - 查看原⽂件3:⽂件 - 另存为4:IE缓存-⽤代码本⾝很难禁⽌下⾯的⼿段我门就迷惑的⽅法阻⽌调出原代码-2:查看 - 原⽂件5:还可以通过代码提取URL欺骗(可以隐藏真实地址)教程代码:<meta http-equiv="refresh" content="0;url='" target="_blank">http://东邪.明天毕竟⼜是新的⼀天@/index.htm'">注意代码中url='http://东邪.明天毕竟⼜是新的⼀天@/index.htm'"@ 符号前⾯的[http://东邪.明天毕竟⼜是新的⼀天]就是欺骗后在IE中出现的效果也可以是后⾯的不⽤说就是连接的真实地址 /index.htmURL迷惑<meta http-equiv="refresh" content="0;url='/" target="_blank">http://东邪.明天毕竟⼜是新的⼀天@.htm'">注意这⼀段和上⾯的有什么不同对就是.htm 那.htm是什么呢呵呵其实就是真实地址怎么访问呢有.htm吗?呵呵我门要做的就就做⼀个没有名字的HTM⽅法很简单先创建个XXX.htm 上传到 QQ⽹络硬盘双激⽂件名将XXX删除怎么样.htm出来了吧这样就算得到原代码很难看出真实地址列1:http://东邪.明天毕竟⼜是新的⼀天@.htm列2:/@.htm呵呵很难看出真实地址是什么吧[JS禁⽌⽤IE - 查看 - 原⽂件]也是迷惑的⽅法但是可以绝对禁⽌以上⾯的⽅式调⽤原⽂件要⽤到JS教程JS代码var oPopup = window.createPopup();var popTop=50;function popmsg(msgstr){var winstr="<table style="border: 1 solid #000000" width="241" height="172" border="0" cellpadding="0" cellspacing="0">";winstr+="<tr><td height="150"></td><td align="center"><table width="90%" height="110" border="0" cellpadding="0" cellspacing="0">"; winstr+="<tr><td valign="top" style="font-size:12px; color: #F00000; face: Tahoma">"+msgstr+"</td></tr></table></td></tr></table>"; oPopup.document.body.innerHTML = winstr;popshow();}function popshow(){window.status=popTop;if(popTop>1720){clearTimeout(mytime);oPopup.hide();return;}else if(popTop>1520&&popTop<1720){oPopup.show(screen.width-250,screen.height,241,1720-popTop);}else if(popTop>1500&&popTop<1520){oPopup.show(screen.width-250,screen.height+(popTop-1720),241,172);}else if(popTop<180){oPopup.show(screen.width-250,screen.height,241,popTop);}else if(popTop<220){oPopup.show(screen.width-250,screen.height-popTop,241,172);}popTop+=10000;var mytime=setTimeout("popshow();",1);}popmsg(" ");另存为 17789897.jsHTM调⽤JS代码<SCRIPT language=javascriptsrc="17789897.js"></SCRIPT>呵呵有写朋友可能熟悉但是我要告诉你他现在的作⽤是禁⽌同过 [IE - 查看 - 原⽂件]区别在这段代码popTop+=10000;var mytime=setTimeout("popshow();",1);看到了吗?速度是10000不⽤我说也知道是什么意思了吧把上⾯JS和HTM调⽤JS代码加到⽹页⾥就可以禁⽌ [IE - 查看 - 原⽂件]关于保护我知道的就这些.[-关于加密-]我建议重要的代码采⽤复合加密⽅式基本上有以下⼏种escape加密8进制转义字符串16进制转义字符串10进制HTML编码如下16进制HTML编码如下都可以⽤<script><!--document.write(unescape("加密后的代码"));//--></script>由于他门的代码很⼤还有JS⽂件我就不给了⼤家可以去搜索[-关于破解-]正所谓魔⾼⼀尺,道⾼⼀丈,再复杂的加密,在多的迷惑,还是要⽤IE来解码。
html加密方法
html加密方法摘要:1.HTML加密方法概述2.常用的HTML加密技术3.加密方法的优缺点分析4.加密过程中的注意事项5.总结与建议正文:随着互联网的普及,数据安全和隐私保护越来越受到人们的关注。
在网页开发中,HTML加密方法作为一种基本的保护手段,被广泛应用。
本文将介绍HTML加密方法的概念、常用技术、优缺点及注意事项,以帮助读者更好地了解和应用HTML加密。
一、HTML加密方法概述HTML加密方法是指在网页开发过程中,对HTML代码中的敏感信息进行加密处理,以防止数据泄露。
通过加密,可以将原始数据转换为无法直接阅读的格式,增加数据的安全性。
二、常用的HTML加密技术1.CSS加密:利用CSS代码对HTML中的文本进行加密,只有知道密钥的用户才能解密阅读。
2.JavaScript加密:利用JavaScript脚本对HTML中的文本进行加密,可以在用户端实现加密和解密。
3.分段加密:将HTML代码分成多个段落,对每个段落进行加密,提高加密强度。
4.加密算法:采用常见的加密算法(如AES、RSA等)对HTML代码进行加密。
三、加密方法的优缺点分析优点:1.简单易用:HTML加密方法相对简单,开发人员可以快速掌握并应用。
2.提高安全性:通过对HTML代码进行加密,有效防止数据泄露。
3.灵活性:加密方式多样化,可以根据实际需求选择合适的加密技术。
缺点:1.加密强度有限:部分HTML加密方法容易被破解,安全性较低。
2.兼容性问题:某些加密方法在不同浏览器或设备上可能无法正常显示。
3.用户体验影响:过度加密可能导致页面加载速度变慢,影响用户体验。
四、加密过程中的注意事项1.选择合适的加密技术:根据实际需求,选择具有较高安全性的加密技术。
2.密钥管理:妥善保管加密密钥,防止泄露。
3.测试与调试:在实际应用前,对加密效果进行测试和调试,确保加密效果符合预期。
五、总结与建议HTML加密方法在保护网页数据安全方面具有一定的作用,但同时也存在一定的局限性。
前端js加密后台php解密,自定义加密方法
前端js加密后台php解密,⾃定义加密⽅法应⽤场景前端html输⼊⽤户名密码之后,使⽤http传到后台,post的内容全部是明⽂,⽤户名和密码通过抓包⼯具可以很容易获取到,所以需要在http 传输之前对密码进⾏加密处理,php收到post内容之后进⾏解密,然后进⾏后续认证处理。
加密解密思路逐个遍历输⼊的密码字符串,在每个字符前后分别插⼊⼀个随机的字符,静态的随机字符串通过⼤⼩写字母和数字打乱顺序所得。
对于字符本⾝,如果存在于静态的字符串中,那么将字符按照静态字符串的顺序后移三位,如此获得最终加密的字符串。
解密⽅式逆处理即可。
js加密代码1function encode(_str){2var staticchars = "PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN";3var encodechars = "";4for(var i=0;i<_str.length;i++){5var num0 = staticchars.indexOf(_str[i]);6if(num0 == -1){7var code = _str[i];8 }else{9var code = staticchars[(num0+3)%62];10 }11var num1 = parseInt(Math.random()*62,10);12var num2 = parseInt(Math.random()*62,10);13 encodechars += staticchars[num1]+code+staticchars[num2];14 }15return encodechars;16 }1function decode(_str){2var staticchars = "PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN";3var decodechars = "";4for(var i=1;i<_str.length;){5var num0 = staticchars.indexOf(_str[i]);6if(num0 == -1){7var code = _str[i];8 }else{9var code = staticchars[(num0+59)%62];10 }11 decodechars += code;12 i = i+3;13 }14return decodechars;15 }php解密代码1public function decode($str){2$staticchars = "PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN";3$decodechars = "";4for($i=1;$i<strlen($str);){5$num0 = strpos($staticchars, $str[$i]);6if($num0 !== false){7$num1 = ($num0+59)%62;8$code = $staticchars[$num1];9 }else{10$code = $str[$i];11 }12$decodechars .= $code;13$i+=3;14 }15return$decodechars;16 }原密码admin!@#123加密后的密码(插⼊的字符是随机获取的,所以加密的密码每次都不⼀样)aQfacYtzkU64fMYe!VV@AY#KdaDZF9oV0特别说明上⾯这种加密⽅式只是进⾏了⼀种简单的伪装,通过分析JS代码是很容易破解的,要求不⾼可以使⽤。
前端js几种加密解密方法
前端js⼏种加密解密⽅法⼀、base64加密base64的github地址⽰例<html><head><title>前端的base64使⽤⽅法</title></head><body></body><script>var str = "hello";var str64 = window.btoa("hello");console.log("字符串是:"+str);console.log("经base64编码后:"+str64);console.log("base64解码后:"+window.atob(str64));</script></html>输出结果⼆、MD5加密(不可逆)关于MD5:MD5.js是通过前台js加密的⽅式对⽤户信息,密码等私密信息进⾏加密处理的⼯具,也可称为插件。
MD5共有6种加密⽅法:1, hex_md5(value)2, b64_md5(value)3, str_md5(value)4, hex_hmac_md5(key, data)5, b64_hmac_md5(key, data)6, str_hmac_md5(key, data)下载好了⽤script 标签引⼊使⽤<script src="md5/md5.js"></script>"></script><script>var code = "123456";var username = "123456";var password = "123456";var str1 = hex_md5("123456");var str2 = b64_md5("123456");var str3 = str_md5("123456");var str4 = hex_hmac_md5(code,code);var str5 = b64_hmac_md5(username,username);var str6 = str_hmac_md5(password,password);console.log(str1); // e10adc3949ba59abbe56e057f20f883econsole.log(str2); // 4QrcOUm6Wau+VuBX8g+IPgconsole.log(str3); // áÜ9IºY«¾VàWò��>console.log(str4); // 30ce71a73bdd908c3955a90e8f7429efconsole.log(str5); // MM5xpzvdkIw5VakOj3Qp7wconsole.log(str6); // 0Îq§;Ý��9U©��t)ï</script>输出结果三、sha1加密(不可逆)此处没找到sha1.js下载地址,所以在bootcdn中找在线⽂件到引⼊,需要的可⾃⾏从bootcdn中下载<script src="https:///js-sha1/0.6.0/sha1.js"></script><script type="text/javascript">var sha1_1 = sha1("mosquito~");console.log(sha1_1);var sha1_2 = sha1("admin:1001");console.log(sha1_2);</script>输出结果四、编码和解码字符串使⽤JS函数的escape()和unescape(),分别是编码和解码字符串<script type="text/javascript">var escape1 =escape("我的名字是:mosquito~");//编码console.log(escape1);var unescape1 = unescape(escape1); //解码console.log(unescape1);</script>输出结果五、AES/DES加密解密下载crypto-js.js 引⼊使⽤⽹址是var aseKey = "12345678" //秘钥必须为:8/16/32位var message = "80018000142";//加密var encrypt = CryptoJS.AES.encrypt(message, CryptoJS.enc.Utf8.parse(aseKey), {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}).toString();console.log(encrypt); //VKrZlqykem73x8/T2oCfCQ==//解密var decrypt = CryptoJS.AES.decrypt(encrypt, CryptoJS.enc.Utf8.parse(aseKey), {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);console.log(decrypt); //80018000142【注】:加密的时候必须转成字符串使⽤toString。
h2u解密方法
h2u 解密方法及其应用
h2u 加密方法是一种常用的加密方式,其原理是通过将原文转换为 uuencode 格式来进行加密,然后再将加密后的结果还原为原文。
本文将介绍 h2u 加密方法的基本原理及其在实际应用中的应用。
一、h2u 加密方法的基本原理
h2u 加密方法是一种常用的加密方式,其原理是通过将原文转换为 uuencode 格式来进行加密,然后再将加密后的结果还原为原文。
具体来说,h2u 加密方法的步骤如下:
1. 将原文转换为 uuencode 格式。
可以使用 uuencode 命令或者使用专门的 uuencode 编码工具来进行转换。
2. 将转换后的字符串进行加密。
可以使用常见的加密算法,如md5、sha1 等来进行加密。
3. 将加密后的结果还原为原文。
这可以通过将加密后的字符串通过 uuencode 命令或者专门的 uuencode 编码工具进行解码来实现。
二、h2u 加密方法的应用
h2u 加密方法可以用于多种场合,例如:
1. 保护原文隐私。
当原文包含敏感信息时,可以使用 h2u 加密方法来保护原文的隐私。
2. 数据备份和传输。
当需要传输大量数据时,可以使用 h2u 加密方法来确保数据的安全和可靠性。
3. 文本加密。
当需要对文本进行加密时,可以使用 h2u 加密方
法来实现。
三、结论
h2u 加密方法是一种简单而实用的加密方法,其原理简单易理解,可以用于多种场合。
在实际使用过程中,需要根据实际情况选择合适的加密算法和加密方式,以确保数据的安全性和可靠性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五:无用内容混乱以及换行空格TAB大法
六:自写解密函数法
七:错误的利用 (自创)
在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE运行的JAVASCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^
HTML七种加密解密方法2008-09-06 12:04:51 我来说两句 收藏 我要投稿 [字体:小 大] 本文一共介绍了七种方法:
一:最简单的加密解密
二:转义字符""的妙用
三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码)
window.execScript( sExpression, sLanguage )
参数:
sExpression: 必选项。字符串(String)。要被执行的代码。
sLanguage : 必选项。字符串(String)。指定执行的代码的语言。默认值为 Microsoft JScript
"黑
客
防线"//ashjgfgf
/*
@#%$^&%$96667r45fggbhytjty
*/
//window
)
;"#@$#%@#432hu";212351436
</SCRIPT>
至少如果我看到这样的代码是不会有心思去分析它的,你哪?
六:自写解密函数法
{
var c=String.fromCharCode(code.charCodeAt(0)+code.length);
for(var i=1;i<code.length;i++){
c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));
<SCRIPT LANGUAGE="JavaScript">
alert("黑客防线");
</SCRIPT>
一:最简单的加密解密
大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:
如何?是不是显得乱七八糟的?如果不知道方法的人很难想到要去掉里面的"空字符"(00H)的!
五:无用内容混乱以及换行空格TAB大法
在JAVASCRIPT代码中我们可以加入大量的无用字符串或数字,以及无用代码和注释内容等等,使真正的有用代码埋没在其中,并把有用的代码中能加入换行、空格、TAB的地方加入大量换行、空格、TAB,并可以把正常的字符串用""来进行换行,这样就会使得代码难以看懂!如我加密后的形式如下:
</SCRIPT>
你可以利用方法二对其中的""号内的字符串再进行编码,使得"JScript.Encode"以及编码特征码"#@~^"不出现,效果会更好!
四:任意添加NUL空字符(十六进制00H)
一次偶然的实验,使我发现在HTML网页中任意位置添加任意个数的"空字符",IE照样会正常显示其中的内容,并正常执行其中的JavaScript 代码,而添加的"空字符"我们在用一般的编辑器查看时,会显示形如空格或黑块,使得原码很难看懂,如用记事本查看则"空字符"会变成"空格",利用这个原理加密结果如下:(其中显示的"空格"代表"空字符")
<SCRIPT LANGUAGE="JavaScript">
var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");
eval(code)
</SCRIPT>
是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵
var Encode=Senc.EncodeScriptFile(".htm",code,0,"");
alert(Encode);
</SCRIPT>
编码后的结果如下:
<SCRIPT LANGUAGE="JScript.Encode">#@~^FgAAAA==@#@&ls DD`J黑客防线r#p@#@&FgMAAA==^#~@</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
var Senc=new ActiveXObject("Scripting.Encoder");
var code=<SCRIPT LANGUAGE="JavaScript">rnalert("黑客防线");rn</SCRIPT>;
八进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
eval("1411541451621645042u9ED1u5BA2u9632u7EBF425173")
</SCRIPT>
十六进制转义字符串如下:
<SCRIPT LANGUAGE="JavaScript">
这个方法和一、二差不多,只不过是自己写个函数对代码进行解密,很多VBS病毒使用这种方法对自身进行加密,来防止特征码扫描!下面是我写的一个简单的加密解密函数,
加密代码如下(详细参照文件"加密.htm"):
<SCRIPT LANGUAGE="JavaScript">
function compile(code)
但我们也应该清楚地认识到因为JAVASCRIPT代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中JAVASCRIPT代码的加密解密技术。
以加密下面的JAVASCRIPT代码为例:
<S C RI P T L ANG U A G E =" J a v a S c r i p t ">
a l er t (" 黑 客 防 线") ;
< / SC R I P T>
呵呵!如何?这次是完全都加密了!
当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:
eval("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")
</SCRIPT>
这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:
<SCRIPT LANGUAGE="JavaScript">
<SCRIPT LANGUAGE="JavaScript">
"xajgxsadffgds";1234567890
625623216;var $=0;alert//@$%%&*()(&(^%^
//cctv function//
(//hhsaasajx xc
/*
asjgdsgu*/
</SCRIPT>
咋样?够简单吧?它是原理是:编码后的代码运行前IE会先对其进行解码,如果我们先把加密的代码放入一个自定义函数如上面的decode()中,然后对自定义函数decode调用toString()方法,得到的将是解码后的代码!
如果你觉得这样编码得到的代码LANGUAGE属性是JScript.Encode,很容易让人识破,那么还有一个几乎不为人知的window对象的方法execScript(),其原形为:
c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));
}
return c;
}
eval(uncompile("o%C
}
alert(escape(c));
}
compile(alert("黑客防线");)
</SCRIPT>
运行得到加密结果为:o%CD%D1%D7%E6%9CJ%u9EF3%uFA73%uF1D4%u14F1%u7EE1Kd
相应的加密后解密的代码如下:
<SCRIPT LANGUAGE="JavaScript">
二:转义字符""的妙用
大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:n (换行)、 r (回车)、 (单引号 )等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为: