zoukankan      html  css  js  c++  java
  • 加密javascript代码

    最近看了个js日历,里面用到了加密,看了下,自己也模仿做加密,现在只能加密一般的javascript语句

    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
    <body>
    <textarea id=v1 rows="8" cols="80">alert('a');</textarea>
    <br />
    <button onclick="myFunction()">加密</button>
    <button onclick="fan()">翻译代码</button>
    <button onclick="doit()">执行加密代码</button>
    <br />
    <textarea id=v2 rows="8" cols="80"></textarea>
    <p id="demo"></p>
    
    <script>
    //Base64^3
    var key="TkRSRFN6VTBUMlkxY2s5cE5scExWRFZaSzJZMWNUSk5ORFJEVEVOMWJWbDBUMjFaY3l0dGFIVjFiVUZvZFZkdGJXVnRZWFoxWlhCMEt5czRha05FYTNWdmVtOW9OMUJ2ZGpWcWEzVmhTR3QxU1VScmRWb3piSEp4ZG1wblNVbExOa2wxYkRaSlR6azFUSEZITmt3Mkt6WmFhVEEyV21sNk5UVkRSemMzZVUxSlQxZHJjV1ZYWTNOUGJVUjJaVmRqY1U5VE5HZFBZVTlxVDFNMGNtVlBRV2RuY205MllXNXZkbkJZY0hVMFZHeDFTak50YVVwcWIyMXhibXh6UzFSMmRrbDNaelpaUTFFMlltMHZOVGQxVURWaWJUQTJTWFZ0TlhCNWNUVk1lVkkwTkVORFEzVlhRblIxWVdsd2RWZHJjV1ZsYkc1MVlVOXBUMlZ6Y0hWcGRtZFBLemhxUTBSdWJXSjJiRzVhZG05b04xUnVjR0V6YjNOTGFtOXRXbFJyZGpZM2FtZEpTVXMxTmxkbE5tSTJXalpNVTJZMVduVXJOVmxsTmpWeVUySTFja013TnpkNVRVbFBWemx4WlZkSWNFOXBhR3hQVXpWd2RXVnBjQ3RUTm10bGJVaHFUMDlCWjJkeWJHMDJSR3hyWWpOd2J6UTNiR3RKTjIxMlNsUnRhVXBFYld4dlpuWjJTWGRuTmxsSFFqVTFVM2sxWVZkSU5scGxielZNZFU4MWNUSnJOV0ZsVERRMFEwTkRkVk0wWjA5WFRtY3JWMFp4SzFkT1oyVlhPV3NyWVZoMGRWZEpkSFVyT0dwRFJHeHdTM0pzYUdGNmJHbExSRzFwU2tScmRVbFFiR3BaU0d0MWIzcHFaMGxKU3paWlEzVTFUSEZQTlhKSFNqVk1kV28xWW5sbk5XRXlVVFZ2YVM4M04zbE5TVTlUTkdkUFYwNW5aVmRHY1N0WGVHZFBVelIxZFdWNWRuVnBTblYxVDBGblozSnNhRmxxY0c5aWRtMXFiM3ByZFVseWJXcHdUR3QxV2pOc2NuRjJkblpKZDJjMU4zRXhOWEZwY1RWWk1rSTFUSEZWTlZwNWJ6VlpWekkxVEdsME5EUkRRME4xWVhOdlpWZDNhSFZYUm5FclYwNXdkV2wxZFhWWFJuRXJhVXRuZFNzNGFrTkVhM1ZKUkcxelNsUnVkVFV2YTNWSmJtdDFUSEp0Y21GUWJISndabXBuU1VsTE5scHBNRFphYVhvMVRIRk5ObGxIUWpWWmFVYzJZVWMyTmxsRFJ6YzNlVTFKVDFNMFowOWhkMnhQVXpScFpWZEdaeXRUTm5WMWFVOXhLMkV4YVN0UFFXZG5jbXQxY0ZSdGJEWlljR2MzTTIxdVlWaHRhbUZNYTNWSlJHeG9XVkIyZGtsM1p6Wk1ZVVkxTmxkbE5XODJiRFZ5UTFVMVRHazJOVmxsUnpVMWNVVTBORU5EUTNWcGRYQlBWMUJzZFZNMWJtVlhkWEVyVXpSMWRWTTFibVZoV1c0ckt6aHFRMFJzYUdGMmNHdzJhbXhxTkdwd1owcEVhM1ZhTTJ4eWNYWnZiMWw2YW1kSlNVczFURzFrTldFMmNqWlpRMmsxTlZONU5VeHBOalUxZFRBMU5ubHROemQ1VFVsUFYwWnhLMjFZY1U5WFFYWlBVemwySzJsSWNYVlhTV2gxWVZscWRVOUJaMmR5Ym5KTFltdDFTWEpyZFZsMmNHdzJhbXQxVEhKdWJUZFVhM1ppTDNaMlNYZG5OVmt5UWpWd1pUSTFUR2xCTlV3eVRqVmhRM0UxV1dWME5XOHlkVFEwUTBORGRXVmlkRTlsYzNCMVZ6UjFUMjFDYnl0WFMyOVBZVmgwZFZjMWMzVXJPR3BEUkc1dE4xUnJkbUl2Y0dkSlluQnZZbkp3WjFsSWJISnhkbXhxY25acVowbEpTelZaVjNRMU5WTjVOVmxYUkRWWkt6TTFXVmQwTlV4MWNUVmFRMDQzTjNsTlNVOVROR2xsVjJ4b0sxZE9jeXRoV1hJclV6VnRaVk0wYldWVE5HZGxUMEZuWjNKd2JVeFFjR2RaU0hCdlluSnJkVFp5YkhCWlpuQm5TV0pzZFVsUWRuWkpkMmMyV21rd05sbEhRalpaUTBjMVRIVnhOV0ZYU0RaaFJ6WTJTMGROTkRSRFEwTjFWMUZwWlcxWWNVOVhRblIxVjNkc1QxZFJhVTlUTkdsbFYyeG9LeXM0YWtORWJHZE1lbTF5WVZSd2IySjJhM1Z3U0c1dFlqZHJkVzkyYkhKd2VtcG5TVWxMTlhCMU1EVmFRMGsxVEhWUE5YQmxRalZaY1djMWNVOUJOVFJMTlRjM2VVMUpUMU01YldWWGRYRXJVelJxWlZkUWNpdGhZMmxsVnl0eWRXVlhkR1ZQUVdkbmNtdDFTVzVzY0ZsbWJIWndabXQyWWk5dmNqVnliRzlMY210MllpOTJka2wzWnpWWlYzUTFOVk41TmxsSFNEVk1iVXcyV2pKbE5XSkRVRFpMUjJ3ME5FTkRRM1ZUTlcxbGJVRnZkV1ZMY2s5dGNISlBVelJ0WlcwNGIwOWxUWFJQS3pocVEwUnNhR0V6YTNWSlNHNXFiMjVzY0dKUWNIRndTSEIyY0c1dmJWazNhbWRKU1VzMVdTdEpOWEI1U2pWTWFVbzFZVmRJTlhKcE5EVlpWM1ExVEhWeE56ZDVUVWxQVjFCMEsxTTBkWFZsVDJsbFYyeHpLMWQxYVU5dFdIRlBZVXBwWlU5QloyZHliMmsyV0d0MlducHdiVXhVYm5BMFNHeHJiM3BzYTBscWEzVnZkbloyU1hkbk5rc3JNelZhUTJJMVRESkhOVnBEVWpWeE1tczFUR2wwTlc4MmJ6UTBRME5EZFZkcmNXVlROR2xsYlZoeFQxZEdjblZYWTNOUFYySnRLMkZKZENzck9HcERSSEJzTmpkc2EwcDJiWEpoVkcxek5WaHNjRzlNYTNaYVdHeHdTVlIyZGtvNFN6VmhVM0UxV1dGNU5XSkRVRFZhUTBvMVRHbFBOVXgxVHpaaE1rSTNOM2xOU1U5aGRIQlBZVmx5SzFkcmNXVnRXSEZQWlc1blpWZElkWFZwTTNJclQwRm5aM0pzYmt4RWJXbE1abkJ0WVZSc2FtSkliSEp3Y210MVNUZHNka2xFZG5aSmQyYzFUR2tyTlV4eFREVTFjVWMxVEhWUE5YRXlhelZNYVhRMVdUWTNORFJEUTBOMVYwWnlaVmRSYVU5WGEzRjFiVmwwVDFkcmNYVlhOSFZQVjFGdEt5czRha05FYTNWSmJtOTJja1JzYUZsUWJXMUxMMnh1VEVSdWNEUkljR3cyYW1wblNVbExOWEIxTURWaU5sZzFZVmRJTmxwbGJ6VTFkVFExTkZkdU5rbERRVGMzZVUxSlQxZElkWFZ0V0hGUFpWcDJkVk0yYVN0aFFYVXJZWE52SzJGemJ5dFBRV2RuY214d1MzSnNhSEpNYkhCTGJuQnhZWHB0YmtsRWEzVk1jbTkwVEZoMmRrbDNaelZaTWxNMU5GTXlOWEI1U2paYWNTczFZVFpqTmxsRFJEWlpSeTgwTkVORFEzVlRPV2gxVnpscksxTTFiVTlYVUd4MVYydHhaVzF3Y2s5cGFHcFBLemhxUTBSc2FWcEliV2xLTDJ4d2IweHNjMkpJYTNWSk0yOTBjbEJ1YkZrdmFtZEpTVXMxVEdsS05VeHBOalUxVTJZMWNrTlZOVXh4VlRWTWFUWTFjVEkzTnpkNVRVbFBhVVJ1VDFkamNVOVROR2xsVjBaeWRXbG9jMDlYWTNGUFV6WnNUMDlCWjJkeWIyYzNNMjl5TkdKdGRVeHFhM1ZKYm5CbllpOXJkWEJVYld3M1luWjJTWGRuTmxsRFp6VlplVmMxTlhsbU5YQjVOalpoUnpjMlN6WjNOVmtyVnpRMFEwTkRkVmQzYzJWVE5ISmxVemhxSzFkUmJpdGhZMmRQVXpSMWRWZElkSFVyT0dwRFJHeHdTMjV2YXpaNmJHbHhSRzV1V1VSc2JreEViSEJMYm05ck5ucHFaMGxKU3pWaFUzQTJTazl6TmtsMWJEVlphWGMxWVZOd05rbDFlRFZNYVVzM04zbE5TVTl0YUhVclpXWndaVmRPY3l0aFdYSXJWMUJxWlZkUmJpdFhkWEVyVDBGblozSnNhR0YyY0d3MmFteHFORE5zY0VremJtMXZZbXh3YjB4dGNtRlVkblpKZDJjMU5WTm1OVnA1YnpVMVUyWTFXVmQxTlhFeU56VmFlVzgxY1RJM05EUkRRME4xVjBKb0sxTTNjRTlYVVdsbFYzVjJLMWNyYkN0WGJHZ3JiVmh4VDA5QloybEVhM1ZKWm10MWIzWnViVzlpYkdnM1ltdDFTVE5zYjB0eWEzWmlMMnBuU1VsTE5WbFhkRFZNZFhFMVdXVTNOVmxwVWpWTU1sWTFZVk54TlZsbE1qYzNlVTFKVDJWVmMzVlhkR3RQWldKMFQyVnpjSFZoUldkbFYxRnJaVk0wYms5UFFXZG5jbTFwU1hwc2FVcEliRzVMYW0xdVMzSnViRXhRYkdsS1NHOXRXVGQyZGtsM1p6VmhLMFkxWW1WNk5rdzJkelpNTm5jMVdUSkpOVmxwVWpWWk1razBORU5EUTNWVE5HbGxWMnhvSzFkR2NHVlhhV3NyVjJ4MlpXRkJibVZoVDNGUEt6aHFRMFJ1YkV4TWJXdzJXSEJuY1ZCc2IwdHliM0EwU0cxdVMzSnNjbkYyYW1kSlNVczFUR2xhTldGWFNEVmlSMlUxTkVkeU5UUkhjalZoUzFRMWIybE5OemQ1VFVsUFlYUndUMkZZZEhWcGRuVlBVelpwSzFNMGFtVnRhSFVyVXpSMWRVOUJaMmR5YlcwM1ZHeHBjVVJzY0V0dWEzVmFibTF1WVZocmRVeFViR2hoTTNaMlNYZG5OWEI1U1RWaFYwZzFUR2t3TlZsWGREVk1jVzAxV2tOTk5rczJOalEwUTBORGRWZFFhVTloWTJsbFlWaDBkVmMxYzNWWFJuQmxWMmxySzFkMWNTc3JPR3BEUkc5eU56ZHJkVXN6Yld3M1ltdDFTWFpzZGpSNmJtMDNhbkJuUzB4cVowbEpTelZ2YVVzMWIybE5OV0ZQY3paTU5uYzFXVmM0TlV4cFdqVnZhVTAzTjNsTlNVOWxXblZQWVdOeGRWTTBaMlZUTkd0bFV6Um5UMWRSYWs5WFNIUjFUMEZuWjNKcmRYQlVhM1ZKTTNCbldXWnRiRGRpY0had2JtdDFTVE51YzNJM2RuWkpkMmMxV1Nzek5VeHBOalZ3Wld3MWNIbEpOVzh5WmpWWlYwbzFjR2xQTkRSRFEwTjFZVmgwZFZjMWMzVmhaSEJsVjBacEsyRlljR1ZYTlhOMVV6UnBkU3M0YWtORWJteE1URzFzTmxod2IySjJibTQyV0cxc04ySnNkalI2YkhWd2NtcG5TVWxMTldGWFNEVk1hVTgyV21Wdk5WbFhkVFZaVjNnMVlWTnhObHBwTURjM2VVMUpUMU0wYVdWcFNYSlBiV0YyZFZjcmJDdGhRWFVyVjB0dlQxTTBkRTlQUVdkbmNtOXBObGh2ZGpWcWJIWndabXQxYjNwcmRYRmlhM1ZNY214clNXNTJka2wzWnpWTWFTczFielp4Tmt0SFRUWktaVkExWWl0R05sbEhRelZpSzBRME5FTkRRM1ZoWW5SUFZ5dHNLMWRCZGs5bGMzQjFWMEYyVDFNNWRpdFhTWEZsS3pocVEwUnNhR0pZYkhKeVltNXNTMnByZFc5MmJXNUpSR3QxVEhKdmRFeFlhbWRKU1VzMVltazBOVXgxVHpWeE1tczFXbmwzTlZsbE56VlpWekkxV1dGNU56ZDVUVWxQWlZwMmRXRkpiVTlsV25aMWFVUnVUMWRSYlN0dGFIVXJhWFZ6VDA5QloyZHliSEJMYm10MVdtNXJkVmwyYm5CYU4yMXBXVVJzYmt0cWJISnhkbloyU1hkbk5XRlRialZpUTBjMVlUWmpOV0pIUmpWWlpUYzFZU3MxTlZsaGVUUTBRME5EZFZkQ2FDdFROM0JQWldKMFQyVnpjSFZYZUdobFpXMTFLMU0xYm1Vck9HcERSR3h3UzI1dmFUZEliRzVhUkd4cU5XSnNhRGQyYkhCTGJtNXlOMlpxWjBsSlN6VTFVM2sxVEcxYU5VeHBXalZNYVVJMWIybExObHBwZWpWd1pUSTNOM2xOU1U5bGJHNTFWM2hvWlZkcmNXVlROR2wxYVcxblpWZFJiU3RsWm5CbFQwRm5aM0pzYmxwRWJHZzNkbkJ2WW5ac2FEWXpiSEJMYm10MVNYSnNjRmxtZG5aSmQyYzJXbWt3TlhCbE1qVmFlWGMxVEdsTU5VeHhiVFZoWVVNMVRHMU1ORFJEUTBOMWFVeHdaV2x1WjJWVE5HbGxWMnhvSzFkamNVOVRObXhQYlZsekt5czRha05FYkdkWkwyeHljSHByZFV4eWJISnhURzlvTm5Kd2NUVnFiSFpNY25aMlNuTkxOV0lyT1RVMFV6STJXVU5wTlRVeVFUVk1jVlUyV21rd05Vd3lUamMzZVUxSlQxZFFhVTlYZFc1UFV6UjFkVk0wZFN0WGJIWmxhV3BuWldsMmNIVlBRV2RuY201dE4xUnVja3RpYkdsWk0ydDFTVzVzYUdFemJHdEphbXQyV1ROMmRrbDNaelZoVTNFMldta3dOVXh0VERVMlYyVTFXbmx2TlZsdFRqVk1jVTAzTjNsTlEzVlhVV3AxVXpSblQxZDFjU3RUTkhKbFV6UjFkVk0xYm1WWGEzRmxLemhxUTBSc2EwazNhM1Z2ZW10MVdYWnVjRm8zYTNWTWNtdDFXak5zYmt4RWFtZEpTVXMxVEcxa05XRlRjRFZNYlV3MVRHbExOV0ZYT1RWdmJYTTFXVmN4TnpkNVRVbFBVelZ1WlZkamMwOWhPVzVQYVZocUsxZFFjaXRsY21rcmFWRndaU3M0YWtGeWEzWkpMMnhvWWxocmRsbGliR3RLU0d4d1MzSndiVXhVYTNaWk0zWjJTWGRuTmtsMWJEWlpRMmsxV1ZkME5WcERTVFZaYVhBMldVTkVOV0l5YVRRMFEwTkRkVmRyY1dWWFkzTlBVeloxZFZkSmFIVlROR2xsYlVKblpWZFJhbVVyT0dwRFJHeHdTMjV3WjFsSWJXNUphbTV6Y2pkc2FsazNibTAxWW10MVRGUjJka2wzU3pWYWVYYzJXVWRDTlhCbGJEVTNTeXMxTjFOeU5VeHhValpLVXprM04zbE5TVTlUTm5WMWJVSm5aVmM1YXl0bFpuQmxZVmx5SzFkcmNYVnRXWFJQVDBGblozSnViRW92YTNVMmVteG9ZVE5yZFVwdWJHdEphbXhvWVROcmRVbElkblpKZDJjMWNUSnJOVXhwTmpWaFUzQTJXVWRDTmtsbGNUVlphVWMxY0dsUE5EUkRRME4xVnpoblQyMVljVTlYUm5KbFV6VnRaVmRSYVU5WFJuSmxWek56WlNzNGFrTkViRzVNUkhCbldVaHNjRzlNYld4eEwyOW5TWHBzZERkTWJtNDJVR3BuU1VsTE5VeDVValphWlc4MVdWZDBOVXhwUWpWWlYzZzFZVk54TmxwcE1EYzNlVTFKVDJGemMzVmhlR2QxVXpaMWRXMUNaMlZoV0c5UGFTOW9LMkYwY0U5UFFXZG5jbTl3YjBodWJqWllhM1ZKYm5CbldVaHJkbHBZYldsWlJHeHljSHAyZGtsM1p6WktaVkExWWpKcE5sbEhRalpNS3pVMWNHRjJOVXhwTmpVM05rODBORU5EUTNWWE5tMTFVelIxZFZkcmNYVmxXblpsVXpSdFpXbE9jQ3RoUkd0bEt6aHFRMFJzZFhCeWEzVktibTV0TjJwc2FYRkViM05KU0d0MlNuSnNkbkJtZG5aS09FczFXVmQwTldKeFlUVlpjV2MxVEdsYU5UVnRPVFZaVjJ3MlNUSnVOemQ1VFVsUFYwWnlaVk0wYldWWFMyOVBWelp0ZFdsT2NDdFhiV2QxWlZwMlpVOUJaMmR5Ym0xaU0yeG9ZVmh2YW1GbWJHaGhOMjkwVEhwc2FtSlFiVzVoV0haMlNYZG5Oa2t5YmpWWlYydzFOVzA1TlZsWGRUWk1VemcyWVVjM05UUkhkRFEwUTBORGRWTTBiV1ZUTkhWMVlVTnNkVmRHY25WWE5tMTFVelIxZFdGbmRrOHJPR3BEUkcxdlRIcHNhVXB1YTNWSk0zQm5Tbkp0WjNCaWEzVmlTSEJuU1dKcVowbEpTelZNYVZvMVRHazJOVmwxUkRWWlYzVTFZbkZoTlV4cE5qVnhRemczTjNsTlNVOWhaM1pQVjBsdFpWTTBhbVZ0UVcxMVYweG5LMU0xYzJWdFFXaDFUMEZuWjNKcmRVcHViR2x4Ukd4d1MyNXJkVnB1YTNWTWNtNXROMVJ1Y2t0aWRuWkpkMmMxWVZOd05VeHRXalZaY1djMVRHbGFOVXhwTmpaaFQyVTFiMHRYTkRSRFEwTjFWelp0ZFZkTGIwOWhXSEJsVnpWemRWTTBkWFZUT0dvclZ6VnpkU3M0YWtORWJXdzJXR3gxWWt4c2FYRkViSFZ3Y25Cdk5UZHNkV0pNYlc5TWVtcG5TVWxMTlZseFp6Vk1hVUUxWVRaeU5WbFhkVFZ2YVZrMVdubHZObGxsVHpjM2VVMUpUMWRSYWs5VE5HZFBWM1Z4SzFkR2NuVmhTVzFQVXpacWRWZGlkbVZQUVdkbmNteDFjSEpzYVhGRWJtMDNWRzV5UzJKc2NFdHVhM1ZhYm10MlNTOTJka2wzWnpVMWRUQTFObmx0TlZseFp6VmljV0UxWVZOd05VeHRXalpoVDJVME5FTkRRM1ZYTm0xMVYwdHZUMlZhZFU5WFJuSjFVelIxZFZkcmNDdGhaM1pQS3pocVEwUnNhWEZFYkc4MmVtdDFXWFp0YkRkaWEzVk1jbXQxU1hKdGIweDZhbWRKU1VzMVdTdEpOV0YxVFRWaVMwSTFjSGxKTlhCbGJEVndaVEkyV1VOcE56ZDVUVWxQVjB0dlQxY3pjMlZUTkhWMVYwbHJaV0ZqWjA5VE5HcGxWM1Z1VDA5QloyZHliVzAzVkcxdVNXNXJkVWxFYjJsTGVteHdXV1p0YjB4NmIyZEpXSFoyU1hkbk5WbFhkRFZpY1dFMlRFTnZOVmwxTHpWWmNXYzFUR2xLTldGWFNEUTBRME5EZFdGMGNFOWhXSFIxYVV4d1pWTTFiaXRwYUdwUFYwWjBaVmRQZFNzck9HcERSR3hxVEc1d2NXRjZiR28yY205MllUZHRiRFpFYjNZMVZHMXVTaTlxWjBsSlN6VlpWM1ExTlcwME5WbHhaelZNYVVJMlNuVklOV0ZUZERVMUszSTNOM2xOU1U5WFJuSmxVelJuWlZkTGIwOWxXblZQYldKblQxZEdjR1ZoZUc0ckt6aHFRWEpzYUdFemEzVmFibXhwY1VSdmRuQjJjSFp3Ym5CblNWQnZkR0pFZG5aSmQyYzFXVmQwTmt3MllqVlpjV2MxVEcxYU5rcHRUelUwZVZjMU5IVkRORFJEUTBOMWFYWjBLMmx1WjNWWFltMHJhVUZvWldGWmNpdFhTSFIxWld4dWRTczRha05FYm0xaU4ydDFiM1p3WjB0TWEzVlpkbTlxY1hadGFuRnliV2xaZG1wblNVbExOVXhwV2pWWmNXYzFOVk41TlZsWGRUWmlhV1kyVEdWTk5UWnRNRGMzZVUxSlQyVlZjM1ZYUzI5UFV6UnRaVmRHY25WdEsyMWxhUzlzVDIxdGJIVlBRV2RuY214cU5uSnRjbUZVYTNWdmVtOW5TVmh0YlVzdmJHdEpibTV3V2pkMmRrbDNaelZNYVRZMVRIRk1OV0ZoUXpWdlUxQTFXVEpDTlZsWGNqVk1iV1EwTkVORFEzVlhSbkVyYlZoeFQybE1jR1Z0UW1nclZ6aG5UMU00YTJWbFZXNHJLemhxUTBSdmNqZHFhM1Z2ZG5CblMweHJkVmwyYldkTWRtNXdOMFJ0WnpSWWFtZEpTVXMxVEhsck5XRTJZelZ2TWxZMU5IbFBOVGQxU1RaaFJ6YzJTVFl6TnpkNVRVbFBZV1J1VDFkc2RtVnRRMmRQYlVKeWRWZFFhWFZ0WVd0UFZ6bHZkVTlCWjJkeWJXMWhMMnQxU1hKdGFYQllhM1ZoWW14MVltSnViMHhVY0cxTVdIWjJTWGRuTlc5UFN6WkpUemsxY0U5VE5rczJPRFZ3ZVVvMVlVOTNOVnBEVGpRMFEwTkRkV2xNY0dWdFdISjFZWFIxSzIxWWNVOVRPV3hsWVVwblQxTTBkU3NyT0dwRFJHeHFObkpzY25CNmJHdEpjbTF5WW5acmRVazNiMjlaZW14cFNraHFaMGxKU3pVMkt6TTFUSFUzTlZsaGVUWk1Oa1kxTm1FNU5scHBlalZ3YVdZM04zbE5TVTlwVEhObGFVdHlkV0ZtYzJWWEwyY3JiVmwwVDFkMWRpdFhVV3BsVDBGblozSnZkbTlZYm5CeU0yeDJORkJ0YlVvdmEzVk1jbXQxU1hKc2EwbHVkblpKZDJjMVdXRjVOVXgxTnpWaVExQTFXa05LTlhCNWNUVlpWMjgxVEhGdk5EUkRRME4xVjJ0d0sxZElkSFZsZG5RcmFVdHlkVk0wYW1WWFozRjFVemwyS3lzNGFrTkViSE5KTDJ4b04ySnZhVGRJYlc0M1NHdDFTVE51YzNJM2JXMUpOMnBuU1VsTE5XRlRialZaWlRJMWNHVm5OWEpEVlRWWksxazFUR2syTlZwRFNqYzNlVTFKVDFkM2FpdFhTSFIxWVZodlQyRjNiRTlUTm5CMVYxRnFUMU0xYVN0UFFXZG5jbXhyU1c1c2NuSXZiVzAzVkc5bk56TndaMHRNYld3M2NtNXROMnAyZGtsM1p6Vk1hVWcxVEdrck5VeHBTRFZaVjI4MVdYRm1OV0lyUmpWdmFWRTBORU5EUTNWcFRIQmxiVUpvSzFNNGEyVlhZbTExVnpWMGRWYzJiaXRoZVc5bEt6aHFRMFJzYVhBemJHdEtkbXQxU1ROc2RqUlliM1kxZG14cFdUTnVjVWwyYW1kSlNVczJTMkZDTmtzclJ6Vk1iV1ExY0dsbU5sbFhUalZNY1ZVMlMwZE5OemQ1VFVsUFYxRm9UMjFoYWl0WFJuRXJWMDV3ZFdsQlp5dGxLM04xWlRkcUt5czRiV2R5Ykc1Wk4yNXlOMlp0YlVvdmJYTk1WRzV3Y25admFUZElibWRoZG5aMlNYZG5OVXhwZERWaE5uSTFXakpyTmtsdGRUVmFlV1kxVEdrMk5rcERiRGMzZVUxRGRWTTFkblZYUm10bFV6UjFkVzFJYTJWdFkyZ3JWek4yWldGamNVOHJPR3BEUkcxc04zSnViVGRxYTNaS1NHeHROWEp1YmtsMmNHZzBNMjkyWW5acVowbEpTelZNYVU4MWIybFNOVnBEVFRaTFIwMDFXVEo2TlV4cE5qVTFkVFEzTjNsTlNVOWhTV3RsWlZWdUsxTTFhU3RoWTJsUGFYWnRkVk0wZFhWaFdIVjFUMEZuWjNKc2RYQXZhM1Z2TjI1cFRHSnRjalF6YTNaS1NHdDFiemR2ZEV0TWRuWkpkMmMxV25WaE5VeHhUelpoZVRnMVdWZDFOVFY1WmpWTWFVNDFZV0ZGTkRSRFEwTjFWMEpvSzFNM2NFOWhkM1JQVjNWMksxZFFkQ3RYYTNGbFpYWjBLeXM0YWtORWJtMDNhbXh1UzJwc2FVb3piR2h4ZW10MVNUZHJkVGRNYkdoeGVuWjJTWGRMTlhCbE5qVk1jVTgxY1RKcU5VeHhUVFZNZVZJMVduVmlOVXh4VlRjM2VVMUpUMWRHZEhWVE9XMWxVemQySzJGMGNFOXBTSEYxWldkc1QyVndkQ3RQUVdkbmNtMW5TMWhzYVVwdWEzVTBOMjV3V2pkdWRrcFFhM1UwTjNCc05tcDJka2wzWnpWTWFVbzFUSEZWTlZrclRqVmhVMDQxWVZOd05sbEhWRFZNY1c4ME5FTkRRM1ZYVG1kbFZ6VnpkVmRMYjA5VE9Hb3JhVXh3WlZkTGIwOXRWVzFsS3pocVEwUnNhR0ZZYkhWd1VHdDJTa2hzYlRWeWJHdEpibXQxYjNac2FtSklhbWRKU1VzMVdUSkNOVGRMS3pWTWFUWTFUREl2TlRWVGJ6Vk1hVFkyVEZNeE56ZDVUVWxQYVRGMEsxZDFiVTlYYTNGbFV6VnRaV1ZWY1U5aFdHOVBiVUpzSzA5QloyZHliSEJMYm01dE5qZHJkVXh5YkhKeFRHeHVURVJyZFV4eWEzVk1kbloyU1hkbk5WbFhkRFUxVTNrMWJ6WnZOVmxYZFRWd1pXYzFZbVYxTlRWRFJ6UTBRME5EZFZkTGJtVlhVVzByYVU5eEsxZHJjMlZoZEhCUFpVOW9UMkZqZFhVck9HcERSRzEwU2pkc2RtSjJhM1ZhTTJ4eWNYWnRhV0ppYlcxSk4ydDFUSFpxWjBsSlN6VmhObkkxV1dreU5WbFhNalphWlc4MVRHbE9OVXhwTmpaTUszSTNOM2xOU1U5dFdIRlBWMGwwZFZkR2RIVlhkWEVyWVZseUsya3ZjU3R0WW1oUFQwRm5aM0pzY0V0dWJuWmFTR3h0Tlhac2RrdEViV3cyUkc5ME5pOXZkR0pFZG5aSmQyYzFUR2xCTlV4eFRUVTNNbEkxVERKUE5YQjVTalpNWlhZMldVTmhOemQ1VFVOMVV6UnBaV2xJY3l0WFltMHJWM1Z4SzJsb2FrOVhSbkJsVjJsckt5czRha05FYkdoaGRtdDFXak53Y1RWcWJIWk1jbXQxTjNadmNHSXZhM1ZLZW1wblNVbExOV0ZUY0RVM01sSTFXblZpTldKNVp6Vk1hVTQxV1N0Mk5XOTVhRGMzZVUxSlQyRjBjRTloV0hSMVpWVnhUMU0yYVN0aFkybGxaVUoyZFdGMVp5c3JPR3BCY205cE5saHRiVXN2Ylc1SmJtdDFjbkp1YVRaNmJHZzNjbTluU1ZoMmRrbDNaelUyZFV3MVREWXZOa3h4Y2paTWNUWTJTMlZDTmtsRFRUVlpWMG8zTjNsTlEzVnBXbkVyWlcxMlpWZDNiWFZwU0hGMWJVSjJLMU0yYW5WbE9XdGxLemhxUTBScmRXOTJiSFkxYm14cVNUTnNha3BFYkdnM2NuQnNObXBzYjNCdWFtZEpTVXMxV1VkSU5VeDFhelUyZFV3MVdXbEhOVXhwV2paTU5tSTFjR1ZzTnpkNVRVbFBVelpwSzJWVmNVOWxiWFYxVXpSeVpWZFFjSFZYWW0wclZ6aHZUMDlCWjJkeWIybHZURzF6U2xSdGFuRnFibkEzZG0xc04ySnNaMHB1YkhKd2NuWjJTWGRuTmxwcE1EWmFhWG8yWVVjMk5sbERSelpMWVVJMU4wc3JObGxEWVRRMFEwTkRkVk0wYVdWWFJtY3JaVzV5SzJGV2MwOWhTV3RQVjBaeVpXVTJjWFVyT0dwRFJHeHdTMjVzYmt4RWJXNUxjbTFwU2tSdGJrbHVhM1ZKUkc1clNXSnFaMGxKU3paTEt6TTJTMlZETlhFeVRUWlpaVTAxTjBzck5XSTJkVFpMSzBFM04zbE5TVTl0Wkc1MVlWbHlLMmt3Y0U5VE5uVjFhVTl4SzFNNGIwOVROR3AxVDBGblp6MDk=";
    
    function myFunction()
    {
        var obj=document.getElementById("v1");
        var str=obj.value;
        var res="";
        for(var i=str.length-1;i>=0;i--)
        {
            res+="0x"+(str.charCodeAt(i)^key.charCodeAt(i)).toString(16)+(i>0?",":"");
        }
        document.getElementById("v2").value=res;
    }
    
    function fan()
    {
        var obj=document.getElementById("v2");
        var str=obj.value;
        var arr=str.split(",");
        var res="";
        for(var i=0;i<arr.length;i++)
        {
            if(!!arr[i])
                res+=String.fromCharCode((arr[i]^key.charCodeAt(i)));
        }
        document.getElementById("demo").innerHTML=res;
    }
    
    function doit()
    {
        var obj=document.getElementById("v2");
        var str=obj.value;
        var arr=str.split(",");
        var res="";
        for(var i=arr.length-1;i>=0;i--)
        {
            if(!!arr[i])
                res+=String.fromCharCode(arr[i]^key.charCodeAt(arr.length-i-1));
        }
        eval(res);
    }
    
    </script>
    
    </body>
    </html>
                

    暂时先写这么多,后续我还会再次增加加密解密的其他功能的。

    JS加密解密第二版


    今天是2015-11-21 星期六,在家里没啥事,又把前面的加密解密函数进行了整理,发出来,方便以后使用,上次的主要偏向于功能方面,这次偏向于应用方面,下面看给出代码以及我的使用说明。

    <!DOCTYPE html>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>JS加密JS原代码段</title>
    <body>
    JS原代码段:
    <br />
    <textarea id=v1 rows="8" cols="80">
    alert('aa');
    alert("bb");</textarea>
    <br />
    <label><input type="checkbox" value="hex" id="opt1" />生成测试加密的代码</label>
    <br />
    <button onclick="myEncode()">加密</button>
    <button onclick="fan()">翻译</button>
    <button onclick="doit()">执行加密代码</button>
    <button onclick="doDocodeJS()">生成加密后的解密函数</button>
    <br />
    <textarea id=v2 rows="8" cols="80"></textarea><br />
    <textarea id="demo" rows="8" cols="80"></textarea>
    
    <script>
    
    var arrBase=new Array();    //在正式应用时,最好都使用数组统一管理密钥
    //Base64^3
    var key="TkRSRFN6VTBUMlkxY2s5cE5scExWRFZaSzJZMWNUSk5ORFJEVEVOMWJWbDBUMjFaY3l0dGFIVjFiVUZvZFZkdGJXVnRZWFoxWlhCMEt5czRha05FYTNWdmVtOW9OMUJ2ZGpWcWEzVmhTR3QxU1VScmRWb3piSEp4ZG1wblNVbExOa2wxYkRaSlR6azFUSEZITmt3Mkt6WmFhVEEyV21sNk5UVkRSemMzZVUxSlQxZHJjV1ZYWTNOUGJVUjJaVmRqY1U5VE5HZFBZVTlxVDFNMGNtVlBRV2RuY205MllXNXZkbkJZY0hVMFZHeDFTak50YVVwcWIyMXhibXh6UzFSMmRrbDNaelpaUTFFMlltMHZOVGQxVURWaWJUQTJTWFZ0TlhCNWNUVk1lVkkwTkVORFEzVlhRblIxWVdsd2RWZHJjV1ZsYkc1MVlVOXBUMlZ6Y0hWcGRtZFBLemhxUTBSdWJXSjJiRzVhZG05b04xUnVjR0V6YjNOTGFtOXRXbFJyZGpZM2FtZEpTVXMxTmxkbE5tSTJXalpNVTJZMVduVXJOVmxsTmpWeVUySTFja013TnpkNVRVbFBWemx4WlZkSWNFOXBhR3hQVXpWd2RXVnBjQ3RUTm10bGJVaHFUMDlCWjJkeWJHMDJSR3hyWWpOd2J6UTNiR3RKTjIxMlNsUnRhVXBFYld4dlpuWjJTWGRuTmxsSFFqVTFVM2sxWVZkSU5scGxielZNZFU4MWNUSnJOV0ZsVERRMFEwTkRkVk0wWjA5WFRtY3JWMFp4SzFkT1oyVlhPV3NyWVZoMGRWZEpkSFVyT0dwRFJHeHdTM0pzYUdGNmJHbExSRzFwU2tScmRVbFFiR3BaU0d0MWIzcHFaMGxKU3paWlEzVTFUSEZQTlhKSFNqVk1kV28xWW5sbk5XRXlVVFZ2YVM4M04zbE5TVTlUTkdkUFYwNW5aVmRHY1N0WGVHZFBVelIxZFdWNWRuVnBTblYxVDBGblozSnNhRmxxY0c5aWRtMXFiM3ByZFVseWJXcHdUR3QxV2pOc2NuRjJkblpKZDJjMU4zRXhOWEZwY1RWWk1rSTFUSEZWTlZwNWJ6VlpWekkxVEdsME5EUkRRME4xWVhOdlpWZDNhSFZYUm5FclYwNXdkV2wxZFhWWFJuRXJhVXRuZFNzNGFrTkVhM1ZKUkcxelNsUnVkVFV2YTNWSmJtdDFUSEp0Y21GUWJISndabXBuU1VsTE5scHBNRFphYVhvMVRIRk5ObGxIUWpWWmFVYzJZVWMyTmxsRFJ6YzNlVTFKVDFNMFowOWhkMnhQVXpScFpWZEdaeXRUTm5WMWFVOXhLMkV4YVN0UFFXZG5jbXQxY0ZSdGJEWlljR2MzTTIxdVlWaHRhbUZNYTNWSlJHeG9XVkIyZGtsM1p6Wk1ZVVkxTmxkbE5XODJiRFZ5UTFVMVRHazJOVmxsUnpVMWNVVTBORU5EUTNWcGRYQlBWMUJzZFZNMWJtVlhkWEVyVXpSMWRWTTFibVZoV1c0ckt6aHFRMFJzYUdGMmNHdzJhbXhxTkdwd1owcEVhM1ZhTTJ4eWNYWnZiMWw2YW1kSlNVczFURzFrTldFMmNqWlpRMmsxTlZONU5VeHBOalUxZFRBMU5ubHROemQ1VFVsUFYwWnhLMjFZY1U5WFFYWlBVemwySzJsSWNYVlhTV2gxWVZscWRVOUJaMmR5Ym5KTFltdDFTWEpyZFZsMmNHdzJhbXQxVEhKdWJUZFVhM1ppTDNaMlNYZG5OVmt5UWpWd1pUSTFUR2xCTlV3eVRqVmhRM0UxV1dWME5XOHlkVFEwUTBORGRXVmlkRTlsYzNCMVZ6UjFUMjFDYnl0WFMyOVBZVmgwZFZjMWMzVXJPR3BEUkc1dE4xUnJkbUl2Y0dkSlluQnZZbkp3WjFsSWJISnhkbXhxY25acVowbEpTelZaVjNRMU5WTjVOVmxYUkRWWkt6TTFXVmQwTlV4MWNUVmFRMDQzTjNsTlNVOVROR2xsVjJ4b0sxZE9jeXRoV1hJclV6VnRaVk0wYldWVE5HZGxUMEZuWjNKd2JVeFFjR2RaU0hCdlluSnJkVFp5YkhCWlpuQm5TV0pzZFVsUWRuWkpkMmMyV21rd05sbEhRalpaUTBjMVRIVnhOV0ZYU0RaaFJ6WTJTMGROTkRSRFEwTjFWMUZwWlcxWWNVOVhRblIxVjNkc1QxZFJhVTlUTkdsbFYyeG9LeXM0YWtORWJHZE1lbTF5WVZSd2IySjJhM1Z3U0c1dFlqZHJkVzkyYkhKd2VtcG5TVWxMTlhCMU1EVmFRMGsxVEhWUE5YQmxRalZaY1djMWNVOUJOVFJMTlRjM2VVMUpUMU01YldWWGRYRXJVelJxWlZkUWNpdGhZMmxsVnl0eWRXVlhkR1ZQUVdkbmNtdDFTVzVzY0ZsbWJIWndabXQyWWk5dmNqVnliRzlMY210MllpOTJka2wzWnpWWlYzUTFOVk41TmxsSFNEVk1iVXcyV2pKbE5XSkRVRFpMUjJ3ME5FTkRRM1ZUTlcxbGJVRnZkV1ZMY2s5dGNISlBVelJ0WlcwNGIwOWxUWFJQS3pocVEwUnNhR0V6YTNWSlNHNXFiMjVzY0dKUWNIRndTSEIyY0c1dmJWazNhbWRKU1VzMVdTdEpOWEI1U2pWTWFVbzFZVmRJTlhKcE5EVlpWM1ExVEhWeE56ZDVUVWxQVjFCMEsxTTBkWFZsVDJsbFYyeHpLMWQxYVU5dFdIRlBZVXBwWlU5QloyZHliMmsyV0d0MlducHdiVXhVYm5BMFNHeHJiM3BzYTBscWEzVnZkbloyU1hkbk5rc3JNelZhUTJJMVRESkhOVnBEVWpWeE1tczFUR2wwTlc4MmJ6UTBRME5EZFZkcmNXVlROR2xsYlZoeFQxZEdjblZYWTNOUFYySnRLMkZKZENzck9HcERSSEJzTmpkc2EwcDJiWEpoVkcxek5WaHNjRzlNYTNaYVdHeHdTVlIyZGtvNFN6VmhVM0UxV1dGNU5XSkRVRFZhUTBvMVRHbFBOVXgxVHpaaE1rSTNOM2xOU1U5aGRIQlBZVmx5SzFkcmNXVnRXSEZQWlc1blpWZElkWFZwTTNJclQwRm5aM0pzYmt4RWJXbE1abkJ0WVZSc2FtSkliSEp3Y210MVNUZHNka2xFZG5aSmQyYzFUR2tyTlV4eFREVTFjVWMxVEhWUE5YRXlhelZNYVhRMVdUWTNORFJEUTBOMVYwWnlaVmRSYVU5WGEzRjFiVmwwVDFkcmNYVlhOSFZQVjFGdEt5czRha05FYTNWSmJtOTJja1JzYUZsUWJXMUxMMnh1VEVSdWNEUkljR3cyYW1wblNVbExOWEIxTURWaU5sZzFZVmRJTmxwbGJ6VTFkVFExTkZkdU5rbERRVGMzZVUxSlQxZElkWFZ0V0hGUFpWcDJkVk0yYVN0aFFYVXJZWE52SzJGemJ5dFBRV2RuY214d1MzSnNhSEpNYkhCTGJuQnhZWHB0YmtsRWEzVk1jbTkwVEZoMmRrbDNaelZaTWxNMU5GTXlOWEI1U2paYWNTczFZVFpqTmxsRFJEWlpSeTgwTkVORFEzVlRPV2gxVnpscksxTTFiVTlYVUd4MVYydHhaVzF3Y2s5cGFHcFBLemhxUTBSc2FWcEliV2xLTDJ4d2IweHNjMkpJYTNWSk0yOTBjbEJ1YkZrdmFtZEpTVXMxVEdsS05VeHBOalUxVTJZMWNrTlZOVXh4VlRWTWFUWTFjVEkzTnpkNVRVbFBhVVJ1VDFkamNVOVROR2xsVjBaeWRXbG9jMDlYWTNGUFV6WnNUMDlCWjJkeWIyYzNNMjl5TkdKdGRVeHFhM1ZKYm5CbllpOXJkWEJVYld3M1luWjJTWGRuTmxsRFp6VlplVmMxTlhsbU5YQjVOalpoUnpjMlN6WjNOVmtyVnpRMFEwTkRkVmQzYzJWVE5ISmxVemhxSzFkUmJpdGhZMmRQVXpSMWRWZElkSFVyT0dwRFJHeHdTMjV2YXpaNmJHbHhSRzV1V1VSc2JreEViSEJMYm05ck5ucHFaMGxKU3pWaFUzQTJTazl6TmtsMWJEVlphWGMxWVZOd05rbDFlRFZNYVVzM04zbE5TVTl0YUhVclpXWndaVmRPY3l0aFdYSXJWMUJxWlZkUmJpdFhkWEVyVDBGblozSnNhR0YyY0d3MmFteHFORE5zY0VremJtMXZZbXh3YjB4dGNtRlVkblpKZDJjMU5WTm1OVnA1YnpVMVUyWTFXVmQxTlhFeU56VmFlVzgxY1RJM05EUkRRME4xVjBKb0sxTTNjRTlYVVdsbFYzVjJLMWNyYkN0WGJHZ3JiVmh4VDA5QloybEVhM1ZKWm10MWIzWnViVzlpYkdnM1ltdDFTVE5zYjB0eWEzWmlMMnBuU1VsTE5WbFhkRFZNZFhFMVdXVTNOVmxwVWpWTU1sWTFZVk54TlZsbE1qYzNlVTFKVDJWVmMzVlhkR3RQWldKMFQyVnpjSFZoUldkbFYxRnJaVk0wYms5UFFXZG5jbTFwU1hwc2FVcEliRzVMYW0xdVMzSnViRXhRYkdsS1NHOXRXVGQyZGtsM1p6VmhLMFkxWW1WNk5rdzJkelpNTm5jMVdUSkpOVmxwVWpWWk1razBORU5EUTNWVE5HbGxWMnhvSzFkR2NHVlhhV3NyVjJ4MlpXRkJibVZoVDNGUEt6aHFRMFJ1YkV4TWJXdzJXSEJuY1ZCc2IwdHliM0EwU0cxdVMzSnNjbkYyYW1kSlNVczFUR2xhTldGWFNEVmlSMlUxTkVkeU5UUkhjalZoUzFRMWIybE5OemQ1VFVsUFlYUndUMkZZZEhWcGRuVlBVelpwSzFNMGFtVnRhSFVyVXpSMWRVOUJaMmR5YlcwM1ZHeHBjVVJzY0V0dWEzVmFibTF1WVZocmRVeFViR2hoTTNaMlNYZG5OWEI1U1RWaFYwZzFUR2t3TlZsWGREVk1jVzAxV2tOTk5rczJOalEwUTBORGRWZFFhVTloWTJsbFlWaDBkVmMxYzNWWFJuQmxWMmxySzFkMWNTc3JPR3BEUkc5eU56ZHJkVXN6Yld3M1ltdDFTWFpzZGpSNmJtMDNhbkJuUzB4cVowbEpTelZ2YVVzMWIybE5OV0ZQY3paTU5uYzFXVmM0TlV4cFdqVnZhVTAzTjNsTlNVOWxXblZQWVdOeGRWTTBaMlZUTkd0bFV6Um5UMWRSYWs5WFNIUjFUMEZuWjNKcmRYQlVhM1ZKTTNCbldXWnRiRGRpY0had2JtdDFTVE51YzNJM2RuWkpkMmMxV1Nzek5VeHBOalZ3Wld3MWNIbEpOVzh5WmpWWlYwbzFjR2xQTkRSRFEwTjFZVmgwZFZjMWMzVmhaSEJsVjBacEsyRlljR1ZYTlhOMVV6UnBkU3M0YWtORWJteE1URzFzTmxod2IySjJibTQyV0cxc04ySnNkalI2YkhWd2NtcG5TVWxMTldGWFNEVk1hVTgyV21Wdk5WbFhkVFZaVjNnMVlWTnhObHBwTURjM2VVMUpUMU0wYVdWcFNYSlBiV0YyZFZjcmJDdGhRWFVyVjB0dlQxTTBkRTlQUVdkbmNtOXBObGh2ZGpWcWJIWndabXQxYjNwcmRYRmlhM1ZNY214clNXNTJka2wzWnpWTWFTczFielp4Tmt0SFRUWktaVkExWWl0R05sbEhRelZpSzBRME5FTkRRM1ZoWW5SUFZ5dHNLMWRCZGs5bGMzQjFWMEYyVDFNNWRpdFhTWEZsS3pocVEwUnNhR0pZYkhKeVltNXNTMnByZFc5MmJXNUpSR3QxVEhKdmRFeFlhbWRKU1VzMVltazBOVXgxVHpWeE1tczFXbmwzTlZsbE56VlpWekkxV1dGNU56ZDVUVWxQWlZwMmRXRkpiVTlsV25aMWFVUnVUMWRSYlN0dGFIVXJhWFZ6VDA5QloyZHliSEJMYm10MVdtNXJkVmwyYm5CYU4yMXBXVVJzYmt0cWJISnhkbloyU1hkbk5XRlRialZpUTBjMVlUWmpOV0pIUmpWWlpUYzFZU3MxTlZsaGVUUTBRME5EZFZkQ2FDdFROM0JQWldKMFQyVnpjSFZYZUdobFpXMTFLMU0xYm1Vck9HcERSR3h3UzI1dmFUZEliRzVhUkd4cU5XSnNhRGQyYkhCTGJtNXlOMlpxWjBsSlN6VTFVM2sxVEcxYU5VeHBXalZNYVVJMWIybExObHBwZWpWd1pUSTNOM2xOU1U5bGJHNTFWM2hvWlZkcmNXVlROR2wxYVcxblpWZFJiU3RsWm5CbFQwRm5aM0pzYmxwRWJHZzNkbkJ2WW5ac2FEWXpiSEJMYm10MVNYSnNjRmxtZG5aSmQyYzJXbWt3TlhCbE1qVmFlWGMxVEdsTU5VeHhiVFZoWVVNMVRHMU1ORFJEUTBOMWFVeHdaV2x1WjJWVE5HbGxWMnhvSzFkamNVOVRObXhQYlZsekt5czRha05FYkdkWkwyeHljSHByZFV4eWJISnhURzlvTm5Kd2NUVnFiSFpNY25aMlNuTkxOV0lyT1RVMFV6STJXVU5wTlRVeVFUVk1jVlUyV21rd05Vd3lUamMzZVUxSlQxZFFhVTlYZFc1UFV6UjFkVk0wZFN0WGJIWmxhV3BuWldsMmNIVlBRV2RuY201dE4xUnVja3RpYkdsWk0ydDFTVzVzYUdFemJHdEphbXQyV1ROMmRrbDNaelZoVTNFMldta3dOVXh0VERVMlYyVTFXbmx2TlZsdFRqVk1jVTAzTjNsTlEzVlhVV3AxVXpSblQxZDFjU3RUTkhKbFV6UjFkVk0xYm1WWGEzRmxLemhxUTBSc2EwazNhM1Z2ZW10MVdYWnVjRm8zYTNWTWNtdDFXak5zYmt4RWFtZEpTVXMxVEcxa05XRlRjRFZNYlV3MVRHbExOV0ZYT1RWdmJYTTFXVmN4TnpkNVRVbFBVelZ1WlZkamMwOWhPVzVQYVZocUsxZFFjaXRsY21rcmFWRndaU3M0YWtGeWEzWkpMMnhvWWxocmRsbGliR3RLU0d4d1MzSndiVXhVYTNaWk0zWjJTWGRuTmtsMWJEWlpRMmsxV1ZkME5WcERTVFZaYVhBMldVTkVOV0l5YVRRMFEwTkRkVmRyY1dWWFkzTlBVeloxZFZkSmFIVlROR2xsYlVKblpWZFJhbVVyT0dwRFJHeHdTMjV3WjFsSWJXNUphbTV6Y2pkc2FsazNibTAxWW10MVRGUjJka2wzU3pWYWVYYzJXVWRDTlhCbGJEVTNTeXMxTjFOeU5VeHhValpLVXprM04zbE5TVTlUTm5WMWJVSm5aVmM1YXl0bFpuQmxZVmx5SzFkcmNYVnRXWFJQVDBGblozSnViRW92YTNVMmVteG9ZVE5yZFVwdWJHdEphbXhvWVROcmRVbElkblpKZDJjMWNUSnJOVXhwTmpWaFUzQTJXVWRDTmtsbGNUVlphVWMxY0dsUE5EUkRRME4xVnpoblQyMVljVTlYUm5KbFV6VnRaVmRSYVU5WFJuSmxWek56WlNzNGFrTkViRzVNUkhCbldVaHNjRzlNYld4eEwyOW5TWHBzZERkTWJtNDJVR3BuU1VsTE5VeDVValphWlc4MVdWZDBOVXhwUWpWWlYzZzFZVk54TmxwcE1EYzNlVTFKVDJGemMzVmhlR2QxVXpaMWRXMUNaMlZoV0c5UGFTOW9LMkYwY0U5UFFXZG5jbTl3YjBodWJqWllhM1ZKYm5CbldVaHJkbHBZYldsWlJHeHljSHAyZGtsM1p6WktaVkExWWpKcE5sbEhRalpNS3pVMWNHRjJOVXhwTmpVM05rODBORU5EUTNWWE5tMTFVelIxZFZkcmNYVmxXblpsVXpSdFpXbE9jQ3RoUkd0bEt6aHFRMFJzZFhCeWEzVktibTV0TjJwc2FYRkViM05KU0d0MlNuSnNkbkJtZG5aS09FczFXVmQwTldKeFlUVlpjV2MxVEdsYU5UVnRPVFZaVjJ3MlNUSnVOemQ1VFVsUFYwWnlaVk0wYldWWFMyOVBWelp0ZFdsT2NDdFhiV2QxWlZwMlpVOUJaMmR5Ym0xaU0yeG9ZVmh2YW1GbWJHaGhOMjkwVEhwc2FtSlFiVzVoV0haMlNYZG5Oa2t5YmpWWlYydzFOVzA1TlZsWGRUWk1VemcyWVVjM05UUkhkRFEwUTBORGRWTTBiV1ZUTkhWMVlVTnNkVmRHY25WWE5tMTFVelIxZFdGbmRrOHJPR3BEUkcxdlRIcHNhVXB1YTNWSk0zQm5Tbkp0WjNCaWEzVmlTSEJuU1dKcVowbEpTelZNYVZvMVRHazJOVmwxUkRWWlYzVTFZbkZoTlV4cE5qVnhRemczTjNsTlNVOWhaM1pQVjBsdFpWTTBhbVZ0UVcxMVYweG5LMU0xYzJWdFFXaDFUMEZuWjNKcmRVcHViR2x4Ukd4d1MyNXJkVnB1YTNWTWNtNXROMVJ1Y2t0aWRuWkpkMmMxWVZOd05VeHRXalZaY1djMVRHbGFOVXhwTmpaaFQyVTFiMHRYTkRSRFEwTjFWelp0ZFZkTGIwOWhXSEJsVnpWemRWTTBkWFZUT0dvclZ6VnpkU3M0YWtORWJXdzJXR3gxWWt4c2FYRkViSFZ3Y25Cdk5UZHNkV0pNYlc5TWVtcG5TVWxMTlZseFp6Vk1hVUUxWVRaeU5WbFhkVFZ2YVZrMVdubHZObGxsVHpjM2VVMUpUMWRSYWs5VE5HZFBWM1Z4SzFkR2NuVmhTVzFQVXpacWRWZGlkbVZQUVdkbmNteDFjSEpzYVhGRWJtMDNWRzV5UzJKc2NFdHVhM1ZhYm10MlNTOTJka2wzWnpVMWRUQTFObmx0TlZseFp6VmljV0UxWVZOd05VeHRXalpoVDJVME5FTkRRM1ZYTm0xMVYwdHZUMlZhZFU5WFJuSjFVelIxZFZkcmNDdGhaM1pQS3pocVEwUnNhWEZFYkc4MmVtdDFXWFp0YkRkaWEzVk1jbXQxU1hKdGIweDZhbWRKU1VzMVdTdEpOV0YxVFRWaVMwSTFjSGxKTlhCbGJEVndaVEkyV1VOcE56ZDVUVWxQVjB0dlQxY3pjMlZUTkhWMVYwbHJaV0ZqWjA5VE5HcGxWM1Z1VDA5QloyZHliVzAzVkcxdVNXNXJkVWxFYjJsTGVteHdXV1p0YjB4NmIyZEpXSFoyU1hkbk5WbFhkRFZpY1dFMlRFTnZOVmwxTHpWWmNXYzFUR2xLTldGWFNEUTBRME5EZFdGMGNFOWhXSFIxYVV4d1pWTTFiaXRwYUdwUFYwWjBaVmRQZFNzck9HcERSR3hxVEc1d2NXRjZiR28yY205MllUZHRiRFpFYjNZMVZHMXVTaTlxWjBsSlN6VlpWM1ExTlcwME5WbHhaelZNYVVJMlNuVklOV0ZUZERVMUszSTNOM2xOU1U5WFJuSmxVelJuWlZkTGIwOWxXblZQYldKblQxZEdjR1ZoZUc0ckt6aHFRWEpzYUdFemEzVmFibXhwY1VSdmRuQjJjSFp3Ym5CblNWQnZkR0pFZG5aSmQyYzFXVmQwTmt3MllqVlpjV2MxVEcxYU5rcHRUelUwZVZjMU5IVkRORFJEUTBOMWFYWjBLMmx1WjNWWFltMHJhVUZvWldGWmNpdFhTSFIxWld4dWRTczRha05FYm0xaU4ydDFiM1p3WjB0TWEzVlpkbTlxY1hadGFuRnliV2xaZG1wblNVbExOVXhwV2pWWmNXYzFOVk41TlZsWGRUWmlhV1kyVEdWTk5UWnRNRGMzZVUxSlQyVlZjM1ZYUzI5UFV6UnRaVmRHY25WdEsyMWxhUzlzVDIxdGJIVlBRV2RuY214cU5uSnRjbUZVYTNWdmVtOW5TVmh0YlVzdmJHdEpibTV3V2pkMmRrbDNaelZNYVRZMVRIRk1OV0ZoUXpWdlUxQTFXVEpDTlZsWGNqVk1iV1EwTkVORFEzVlhSbkVyYlZoeFQybE1jR1Z0UW1nclZ6aG5UMU00YTJWbFZXNHJLemhxUTBSdmNqZHFhM1Z2ZG5CblMweHJkVmwyYldkTWRtNXdOMFJ0WnpSWWFtZEpTVXMxVEhsck5XRTJZelZ2TWxZMU5IbFBOVGQxU1RaaFJ6YzJTVFl6TnpkNVRVbFBZV1J1VDFkc2RtVnRRMmRQYlVKeWRWZFFhWFZ0WVd0UFZ6bHZkVTlCWjJkeWJXMWhMMnQxU1hKdGFYQllhM1ZoWW14MVltSnViMHhVY0cxTVdIWjJTWGRuTlc5UFN6WkpUemsxY0U5VE5rczJPRFZ3ZVVvMVlVOTNOVnBEVGpRMFEwTkRkV2xNY0dWdFdISjFZWFIxSzIxWWNVOVRPV3hsWVVwblQxTTBkU3NyT0dwRFJHeHFObkpzY25CNmJHdEpjbTF5WW5acmRVazNiMjlaZW14cFNraHFaMGxKU3pVMkt6TTFUSFUzTlZsaGVUWk1Oa1kxTm1FNU5scHBlalZ3YVdZM04zbE5TVTlwVEhObGFVdHlkV0ZtYzJWWEwyY3JiVmwwVDFkMWRpdFhVV3BsVDBGblozSnZkbTlZYm5CeU0yeDJORkJ0YlVvdmEzVk1jbXQxU1hKc2EwbHVkblpKZDJjMVdXRjVOVXgxTnpWaVExQTFXa05LTlhCNWNUVlpWMjgxVEhGdk5EUkRRME4xVjJ0d0sxZElkSFZsZG5RcmFVdHlkVk0wYW1WWFozRjFVemwyS3lzNGFrTkViSE5KTDJ4b04ySnZhVGRJYlc0M1NHdDFTVE51YzNJM2JXMUpOMnBuU1VsTE5XRlRialZaWlRJMWNHVm5OWEpEVlRWWksxazFUR2syTlZwRFNqYzNlVTFKVDFkM2FpdFhTSFIxWVZodlQyRjNiRTlUTm5CMVYxRnFUMU0xYVN0UFFXZG5jbXhyU1c1c2NuSXZiVzAzVkc5bk56TndaMHRNYld3M2NtNXROMnAyZGtsM1p6Vk1hVWcxVEdrck5VeHBTRFZaVjI4MVdYRm1OV0lyUmpWdmFWRTBORU5EUTNWcFRIQmxiVUpvSzFNNGEyVlhZbTExVnpWMGRWYzJiaXRoZVc5bEt6aHFRMFJzYVhBemJHdEtkbXQxU1ROc2RqUlliM1kxZG14cFdUTnVjVWwyYW1kSlNVczJTMkZDTmtzclJ6Vk1iV1ExY0dsbU5sbFhUalZNY1ZVMlMwZE5OemQ1VFVsUFYxRm9UMjFoYWl0WFJuRXJWMDV3ZFdsQlp5dGxLM04xWlRkcUt5czRiV2R5Ykc1Wk4yNXlOMlp0YlVvdmJYTk1WRzV3Y25admFUZElibWRoZG5aMlNYZG5OVXhwZERWaE5uSTFXakpyTmtsdGRUVmFlV1kxVEdrMk5rcERiRGMzZVUxRGRWTTFkblZYUm10bFV6UjFkVzFJYTJWdFkyZ3JWek4yWldGamNVOHJPR3BEUkcxc04zSnViVGRxYTNaS1NHeHROWEp1YmtsMmNHZzBNMjkyWW5acVowbEpTelZNYVU4MWIybFNOVnBEVFRaTFIwMDFXVEo2TlV4cE5qVTFkVFEzTjNsTlNVOWhTV3RsWlZWdUsxTTFhU3RoWTJsUGFYWnRkVk0wZFhWaFdIVjFUMEZuWjNKc2RYQXZhM1Z2TjI1cFRHSnRjalF6YTNaS1NHdDFiemR2ZEV0TWRuWkpkMmMxV25WaE5VeHhUelpoZVRnMVdWZDFOVFY1WmpWTWFVNDFZV0ZGTkRSRFEwTjFWMEpvSzFNM2NFOWhkM1JQVjNWMksxZFFkQ3RYYTNGbFpYWjBLeXM0YWtORWJtMDNhbXh1UzJwc2FVb3piR2h4ZW10MVNUZHJkVGRNYkdoeGVuWjJTWGRMTlhCbE5qVk1jVTgxY1RKcU5VeHhUVFZNZVZJMVduVmlOVXh4VlRjM2VVMUpUMWRHZEhWVE9XMWxVemQySzJGMGNFOXBTSEYxWldkc1QyVndkQ3RQUVdkbmNtMW5TMWhzYVVwdWEzVTBOMjV3V2pkdWRrcFFhM1UwTjNCc05tcDJka2wzWnpWTWFVbzFUSEZWTlZrclRqVmhVMDQxWVZOd05sbEhWRFZNY1c4ME5FTkRRM1ZYVG1kbFZ6VnpkVmRMYjA5VE9Hb3JhVXh3WlZkTGIwOXRWVzFsS3pocVEwUnNhR0ZZYkhWd1VHdDJTa2hzYlRWeWJHdEpibXQxYjNac2FtSklhbWRKU1VzMVdUSkNOVGRMS3pWTWFUWTFUREl2TlRWVGJ6Vk1hVFkyVEZNeE56ZDVUVWxQYVRGMEsxZDFiVTlYYTNGbFV6VnRaV1ZWY1U5aFdHOVBiVUpzSzA5QloyZHliSEJMYm01dE5qZHJkVXh5YkhKeFRHeHVURVJyZFV4eWEzVk1kbloyU1hkbk5WbFhkRFUxVTNrMWJ6WnZOVmxYZFRWd1pXYzFZbVYxTlRWRFJ6UTBRME5EZFZkTGJtVlhVVzByYVU5eEsxZHJjMlZoZEhCUFpVOW9UMkZqZFhVck9HcERSRzEwU2pkc2RtSjJhM1ZhTTJ4eWNYWnRhV0ppYlcxSk4ydDFUSFpxWjBsSlN6VmhObkkxV1dreU5WbFhNalphWlc4MVRHbE9OVXhwTmpaTUszSTNOM2xOU1U5dFdIRlBWMGwwZFZkR2RIVlhkWEVyWVZseUsya3ZjU3R0WW1oUFQwRm5aM0pzY0V0dWJuWmFTR3h0Tlhac2RrdEViV3cyUkc5ME5pOXZkR0pFZG5aSmQyYzFUR2xCTlV4eFRUVTNNbEkxVERKUE5YQjVTalpNWlhZMldVTmhOemQ1VFVOMVV6UnBaV2xJY3l0WFltMHJWM1Z4SzJsb2FrOVhSbkJsVjJsckt5czRha05FYkdoaGRtdDFXak53Y1RWcWJIWk1jbXQxTjNadmNHSXZhM1ZLZW1wblNVbExOV0ZUY0RVM01sSTFXblZpTldKNVp6Vk1hVTQxV1N0Mk5XOTVhRGMzZVUxSlQyRjBjRTloV0hSMVpWVnhUMU0yYVN0aFkybGxaVUoyZFdGMVp5c3JPR3BCY205cE5saHRiVXN2Ylc1SmJtdDFjbkp1YVRaNmJHZzNjbTluU1ZoMmRrbDNaelUyZFV3MVREWXZOa3h4Y2paTWNUWTJTMlZDTmtsRFRUVlpWMG8zTjNsTlEzVnBXbkVyWlcxMlpWZDNiWFZwU0hGMWJVSjJLMU0yYW5WbE9XdGxLemhxUTBScmRXOTJiSFkxYm14cVNUTnNha3BFYkdnM2NuQnNObXBzYjNCdWFtZEpTVXMxV1VkSU5VeDFhelUyZFV3MVdXbEhOVXhwV2paTU5tSTFjR1ZzTnpkNVRVbFBVelpwSzJWVmNVOWxiWFYxVXpSeVpWZFFjSFZYWW0wclZ6aHZUMDlCWjJkeWIybHZURzF6U2xSdGFuRnFibkEzZG0xc04ySnNaMHB1YkhKd2NuWjJTWGRuTmxwcE1EWmFhWG8yWVVjMk5sbERSelpMWVVJMU4wc3JObGxEWVRRMFEwTkRkVk0wYVdWWFJtY3JaVzV5SzJGV2MwOWhTV3RQVjBaeVpXVTJjWFVyT0dwRFJHeHdTMjVzYmt4RWJXNUxjbTFwU2tSdGJrbHVhM1ZKUkc1clNXSnFaMGxKU3paTEt6TTJTMlZETlhFeVRUWlpaVTAxTjBzck5XSTJkVFpMSzBFM04zbE5TVTl0Wkc1MVlWbHlLMmt3Y0U5VE5uVjFhVTl4SzFNNGIwOVROR3AxVDBGblp6MDk=";
    key="9876543210zyxwvutsrqponmlkjihgfedcbaABCDEFGHIJKLMNOPQRSTUVWXYZ";
    //Base64^2
    var baseKey="VFdWdVoxRnBZVzVu";
    baseKey=[0x56,0x46,0x64,0x57,0x64,0x56,0x6f,0x78,0x52,0x6e,0x42,0x5a,0x56,0x7a,0x56,0x75];
    arrBase=[key,baseKey];
    
    
    //测试使用,用于生成baseKey的十六进制数组
    var t1="",num="abc";    //用于测试时生成的加密代码,可以被翻译回去
    for(var i=0;i<baseKey.length;i++)
    t1+="0x"+baseKey.charCodeAt(i).toString(16)+",";
    document.getElementById("v2").value=t1;
    
    
    //加密js语句块的函数,①用于测试使用,②用正式环境的加密
    function myEncode()
    {
        //num=document.getElementById("opt1").checked?"":"1";
        var obj=document.getElementById("v1");
        var str=obj.value;
        var s_arr=str.split('
    ');
        var keyLength=parseInt(key.length/s_arr.length);
        var res="";
        for(var i=0;i<s_arr.length;i++)
        {
            if(num)
            {
                res+="[";  //②逆向加密,测试时可以关闭
                for(var j=0,l=s_arr[i].length-1;j<s_arr[i].length;j++)  //②逆向加密
                    res+="0x"+(s_arr[i].charCodeAt(j)^key.charCodeAt(i*keyLength+l--%keyLength)).toString(16)+(j<s_arr[i].length-1?",":"");  //②逆向加密
                res+="]"+(i<s_arr.length-1?",":"");  //②逆向加密,测试可以请关闭
            }
            else
            {
            for(var j=0,l=0;j<s_arr[i].length;j++)  //①顺序加密
                res+="0x"+(s_arr[i].charCodeAt(j)^key.charCodeAt(i*keyLength+l++%keyLength)).toString(16)+(j<s_arr[i].length-1?",":"");  //①顺序加密
            }
            res+=i<s_arr.length-1?"
    ":"";  //①②
        }    
        document.getElementById("v2").value=res;
    }
    
    //解密,反编译加密后的代码,全部使用①的代码进行解密,一般用于测试
    function fan()
    {
        var obj=document.getElementById("v2");
        var str=obj.value;
        var o_arr=str.split("
    ");
        var keyLength=parseInt(key.length/o_arr.length);
        var res="";
        for(var i=0;i<o_arr.length;i++)
        {
            var t_arr=o_arr[i].split(",");
            for(var j=0,l=0;j<t_arr.length;j++)
            {
                if(!!t_arr[j])
                    res+=String.fromCharCode((t_arr[j]^key.charCodeAt(i*keyLength+l++%keyLength)));
            }
            res+="
    ";
        }    
        document.getElementById("demo").innerText=res;
    }
    
    //执行加密代码,
    function doit()
    {
        var obj=document.getElementById("v2");
        var str=obj.value;
        var o_arr=str.replace(/([)*(],)*(])*/ig,"").split("
    ");
        for(var i=0;i<o_arr.length;i++)
            o_arr[i]=o_arr[i].split(",");
        eval(myDecode(o_arr));
    }
    
    //解密函数
    function myDecode()
    {
        var pwArr = arguments[0];
        var argLength=arguments.length;
        var keyLength=parseInt(key.length/pwArr.length);
        var res="";
        if(argLength=="1")
            for(var i=0;i<pwArr.length;i++)
            {
                var t_arr=pwArr[i];
                if(num)
                {
                    for(var j=0,l=t_arr.length-1;j<t_arr.length;j++)  //②逆向解密
                        if(t_arr[j]!=="")
                            res+=String.fromCharCode(t_arr[j]^key.charCodeAt(i*keyLength+l--%keyLength));  //②逆向解密
                }
                else
                {
                    for(var j=0,l=0;j<t_arr.length;j++)  //①顺序解密
                        if(t_arr[j]!=="")
                            res+=String.fromCharCode(t_arr[j]^key.charCodeAt(i*keyLength+l++%keyLength));  //①顺序解密
                }
            }
        else
        {
            var index=arguments[1];
            var t_arr=pwArr[index];
            if(num)
            {
                for(var j=0,l=t_arr.length-1;j<t_arr.length;j++)  //②逆向解密
                    if(t_arr[j]!=="")
                        res+=String.fromCharCode(t_arr[j]^key.charCodeAt(index*keyLength+l--%keyLength));  //②逆向解密
            }
            else
            {
                for(var j=0,l=0;j<t_arr.length;j++)  //①顺序解密
                    if(t_arr[j]!=="")
                        res+=String.fromCharCode(t_arr[j]^key.charCodeAt(index*keyLength+l++%keyLength));  //①顺序解密
            }
        }
        return res;
    }
    
    
    
    
    
    
    /****************************************
    *                                        *
    * 以下用于对解密函数再加密的函数        *
    *                                        *
    *                                        *
    ****************************************/
    
    //加密"加密的函数"
    function _000(pw)
    {
        var pn="";
        for (var k=0;k<pw.length;k++) 
            pn+="0x"+(pw.charCodeAt(k)+arrBase[1][k%arrBase[1].length]).toString(16)+(k<(pw.length-1)?",":"");
        return pn;
    }
    
    //解密加密的函数
    function _999(pw)
    {
        var pn="";
        for (var k=0;k<pw.length;k++) 
            pn+=String.fromCharCode(pw[k]-arrBase[1][k%arrBase[1].length]);
        return pn;
    }
    
    //一般用在正式环境的时候,解密加密后的js代码,由解密函数myDecode简化而来
    function decodeJS()
    {
        var res='';
        var pwArr = arguments[0];
        var index=arguments[1];
        var keyLength=parseInt(arrBase[0].length/pwArr.length);
        var t_arr=pwArr[index];
        for(var j=0,l=t_arr.length-1;j<t_arr.length;j++)
            if(t_arr[j]!=='')
                res+=String.fromCharCode(t_arr[j]^arrBase[0].charCodeAt(index*keyLength+l--%keyLength));
        console.log(res);
        return res;
    }
    
    //decodeJS函数的压缩版,只是函数名区分大小写了
    //function DecodeJS(){var res='';var pwArr=arguments[0];var index=arguments[1];var keyLength=parseInt(key.length/pwArr.length);var t_arr=pwArr[index];for(var j=0,l=t_arr.length-1;j<t_arr.length;j++){if(t_arr[j]!==''){res+=String.fromCharCode(t_arr[j]^key.charCodeAt(index*keyLength+l--%keyLength))}}return res};
    function DecodeJS(){var res='';var pwArr=arguments[0];var index=arguments[1];var keyLength=parseInt(arrBase[0].length/pwArr.length);var t_arr=pwArr[index];for(var j=0,l=t_arr.length-1;j<t_arr.length;j++)if(t_arr[j]!=='')res+=String.fromCharCode(t_arr[j]^arrBase[0].charCodeAt(index*keyLength+l--%keyLength));return res}
    
    //把解密函数进行加密
    function doDocodeJS()
    {
        document.getElementById("demo").value=_000(DecodeJS.toString());
    }
    
    
    //console.log(_000("function f(x){alert(x);}"));//测试生成的加密代码
    var d=[0xbc,0xbb,0xd2,0xba,0xd8,0xbf,0xde,0xe6,0x72,0xd4,0x6a,0xd2,0x7f,0xf5,0xb7,0xe1,0xbb,0xb8,0xd8,0x7f,0xdc,0x7f,0xaa,0xf5];
    //console.log(_999(d));//测试解密,对加密后函数生成的加密代码
    //console.log("test.................");
    
    </script>
    
    </body>
    </html>

     使用说明:

    本程序主要是由eval去执行代码,使用前期准备的JS代码段要求符合eval的使用规范以及注意事项,不懂的可以参考我博客前面几期的相关文章说明。

    本次演示使用简单的根据当前日期算第几周程序,是随便找我以前的一个blogs文章中的程序:当前是本月第几周,程序代码如下:

    var getMonthWeek = function(a, b, c)
    {
            var date = new Date(a, parseInt(b) - 1, c),
                w = date.getDay(),
                d = date.getDate();
            return Math.ceil((d + 6 - w) / 7);   //①
    };
    var getYearWeek = function(a, b, c) 
    {
            var date1 = new Date(a, parseInt(b) - 1, c),   //②
                date2 = new Date(a, 0, 1),
                d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000);   //③
            return Math.ceil((d + ((date2.getDay() + 1) - 1)) / 7);
    };
    today = new Date();
    var y = today.getYear();
    var m = today.getMonth() + 1;
    var d = today.getDate();
    document.write("今天是"+ m + "月的第 " + getMonthWeek(y, m, d) + " 周");    //④
    document.write("<br /><br />"+today.getHours()+":"+ today.getMinutes()+":"+ today.getSeconds());
    

     程序很简单,大家应该都能看懂,我就不解释了,主要是加密其中的①②③④语句,下面具体说说加密使用的步骤:

     1:把需要加密的JS代码段整理出来,如果是函数或多条语句,最好是每个单独执行的代码段压缩下,整理成每行是一个执行单元的语句。 
       这样的好处是一:方便后续的执行,二:大大减少加密后的代码。
       由于我也把解密函数进行加密,所以预留了两行(后面会用到)。

    Math.ceil((d + 6 - w) / 7);
    new Date(a, parseInt(b) - 1, c)
    Math.round((date1.valueOf() - date2.valueOf()) / 86400000);
    "今天是"+ m+ "月的第 "+ getMonthWeek(y, m, d)+ " 周"
    alert('aaa');
    alert("bbb");

     2:整理好的代码段放入“JS原代码段”的输入框中,按“加密”按钮,生成加密后的代码数字。生成后的代码数组如下:

    1 [0x7e,0x55,0x41,0x5e,0x19,0x5b,0x5c,0x59,0x5d,0x1a,0x1b,0x50,0x15,0x1d,0x17,0xe,0x19,0x1d,0x11,0x45,0x1a,0x14,0x1a,0x16,0x0,0x11,0x2],
    2 [0x14,0x14,0x5,0x53,0x30,0x14,0x2,0x12,0x50,0x18,0x56,0x51,0x2,0x12,0x6,0x6,0x13,0x3e,0x16,0xd,0x52,0x13,0x5b,0x53,0x59,0x55,0x47,0x5b,0x58,0x1a,0x53],
    3 [0x25,0x8,0x1e,0x3,0x42,0x1f,0x1,0x1a,0x1e,0x3,0x40,0x41,0xe,0xa,0x18,0x8,0x5f,0x41,0x6,0x6,0x4,0x1c,0xf,0x24,0xa,0x45,0x47,0x4f,0x5d,0x47,0xc,0x8,0x1e,0xe,0x5e,0x43,0x18,0xe,0x1c,0x12,0xd,0x26,0xc,0x43,0x45,0x44,0x4e,0x40,0x50,0x5f,0x5e,0x5d,0x5a,0x5b,0x5c,0x5d,0x5e,0x46,0x4b],
    4 [0x40,0x4ea9,0x594d,0x664a,0x44,0x6f,0x63,0x2f,0x6a,0x41,0x40,0x676b,0x76e0,0x7b49,0x46,0x66,0x68,0x62,0x26,0x4,0x16,0x2e,0xb,0xb,0x12,0x2c,0x14,0x27,0x24,0xa,0x4a,0x1a,0x48,0x45,0xb,0x68,0x63,0x26,0x68,0x4a,0x42,0x41,0x44,0x540d,0x44],
    5 [0x26,0x2a,0x20,0x3c,0x39,0x64,0x6c,0x2b,0x28,0x29,0x60,0x6f,0x7e],
    6 [0x30,0x3c,0x2a,0x2a,0x23,0x7e,0x77,0x36,0x31,0x30,0x73,0x79,0x74]

      3:点击“生成加密后的解密函数”按钮,生成加密后的解密函数:

    [0xbc,0xbb,0xd2,0xba,0xd8,0xbf,0xde,0xe6,0x72,0xb2,0xa7,0xbd,0xc5,0xde,0xbb,0xbf,0xa9,0x6e,0x8d,0xd2,0xda,0xb7,0xe1,0x98,0xc4,0xd3,0xb5,0x97,0x7d,0xa1,0x91,0xeb,0xb7,0xb8,0x84,0xc7,0xdb,0x97,0xe1,0xea,0x8f,0xcf,0xb4,0xc1,0xcb,0xe7,0xbb,0xe3,0xca,0xb9,0xbf,0x87,0xc1,0x91,0xe5,0xd9,0xc4,0x8e,0xab,0xc8,0xba,0xdf,0xce,0xb2,0xb7,0xb8,0xcb,0xcc,0xd1,0xbb,0xdd,0xec,0xc5,0xc9,0x73,0xb7,0x91,0xf0,0xb7,0xe7,0x76,0xb1,0xc9,0xd0,0xb0,0xbb,0xdd,0xdf,0xc6,0xd6,0x7f,0xca,0xb7,0xec,0xc9,0xda,0x9f,0xb4,0xd8,0x7f,0xc5,0xc8,0xe1,0xba,0xb3,0xe1,0xa7,0xb5,0x86,0xd7,0x84,0xe1,0xbb,0xb4,0xcb,0xcb,0xcc,0x85,0xdf,0xef,0x93,0xe0,0xb4,0x88,0xc2,0xdf,0xc4,0xdc,0xca,0xae,0x8d,0x92,0xda,0xb7,0xe1,0x98,0xc6,0xcd,0xa3,0xcc,0xc8,0xb7,0xc6,0xec,0x97,0xb8,0xd6,0xb2,0xcd,0xc4,0xd3,0xdd,0xca,0xcb,0x7d,0xc0,0xc5,0xec,0x7e,0xeb,0xb7,0xb8,0x84,0xc1,0xa1,0x86,0x9b,0xe4,0x8f,0xe2,0xa1,0xbb,0xc8,0xec,0x84,0xe1,0xbb,0xb4,0xcb,0xcb,0xcc,0x83,0xa0,0xb3,0xbc,0xaa,0xb6,0xb9,0xb7,0xec,0xc8,0xa3,0xc2,0xab,0xd2,0xbe,0xd8,0xbe,0xaa,0xe2,0x7d,0x99,0x6b,0xc3,0xbc,0xa2,0xca,0xd4,0xb7,0xb8,0xd6,0xb2,0xce,0xb3,0x90,0xb5,0x8f,0x95,0x69,0x83,0xc8,0xdf,0xc9,0xa0,0x93,0x99,0xd8,0xc9,0xcd,0xc4,0xd6,0xa6,0xb8,0xe0,0xb1,0xc7,0x99,0xe2,0xb7,0xe7,0x99,0xb5,0xc8,0xbc,0x8c,0xca,0xce,0xd9,0xc4,0xe0,0x9d,0xc4,0xb3,0xd8,0xb7,0xe7,0xc8,0x88,0xc5,0xca,0xc9,0xb1,0x9f,0xd5,0x80,0xd1,0xaa,0xbb,0xc8,0xbd,0xc5,0xd9,0xbb,0x87,0xd8,0x7f,0xcd,0xc4,0xd3,0xdd,0xca,0x98,0xad,0xbf,0xcf,0xc6,0xbb,0xe3,0xbd,0xba,0xcc,0x82,0xd0,0x83,0x9c,0x9d,0xbd,0xd3,0xbb,0xa6,0xbb,0xe8,0xbd,0xe9,0xbe,0x6f,0x8d,0x92,0xd6,0xbb,0xe3,0xed,0xc4,0xdc,0x62,0xcc,0xbb,0xed,0xd3]

      4:把第三步生成的代码替换第二步中的第6行的数组,最后生成的如下代码:

    [0x7e,0x55,0x41,0x5e,0x19,0x5b,0x5c,0x59,0x5d,0x1a,0x1b,0x50,0x15,0x1d,0x17,0xe,0x19,0x1d,0x11,0x45,0x1a,0x14,0x1a,0x16,0x0,0x11,0x2],
    [0x14,0x14,0x5,0x53,0x30,0x14,0x2,0x12,0x50,0x18,0x56,0x51,0x2,0x12,0x6,0x6,0x13,0x3e,0x16,0xd,0x52,0x13,0x5b,0x53,0x59,0x55,0x47,0x5b,0x58,0x1a,0x53],
    [0x25,0x8,0x1e,0x3,0x42,0x1f,0x1,0x1a,0x1e,0x3,0x40,0x41,0xe,0xa,0x18,0x8,0x5f,0x41,0x6,0x6,0x4,0x1c,0xf,0x24,0xa,0x45,0x47,0x4f,0x5d,0x47,0xc,0x8,0x1e,0xe,0x5e,0x43,0x18,0xe,0x1c,0x12,0xd,0x26,0xc,0x43,0x45,0x44,0x4e,0x40,0x50,0x5f,0x5e,0x5d,0x5a,0x5b,0x5c,0x5d,0x5e,0x46,0x4b],
    [0x40,0x4ea9,0x594d,0x664a,0x44,0x6f,0x63,0x2f,0x6a,0x41,0x40,0x676b,0x76e0,0x7b49,0x46,0x66,0x68,0x62,0x26,0x4,0x16,0x2e,0xb,0xb,0x12,0x2c,0x14,0x27,0x24,0xa,0x4a,0x1a,0x48,0x45,0xb,0x68,0x63,0x26,0x68,0x4a,0x42,0x41,0x44,0x540d,0x44],
    [0x26,0x2a,0x20,0x3c,0x39,0x64,0x6c,0x2b,0x28,0x29,0x60,0x6f,0x7e],
    [0xbc,0xbb,0xd2,0xba,0xd8,0xbf,0xde,0xe6,0x72,0xb2,0xa7,0xbd,0xc5,0xde,0xbb,0xbf,0xa9,0x6e,0x8d,0xd2,0xda,0xb7,0xe1,0x98,0xc4,0xd3,0xb5,0x97,0x7d,0xa1,0x91,0xeb,0xb7,0xb8,0x84,0xc7,0xdb,0x97,0xe1,0xea,0x8f,0xcf,0xb4,0xc1,0xcb,0xe7,0xbb,0xe3,0xca,0xb9,0xbf,0x87,0xc1,0x91,0xe5,0xd9,0xc4,0x8e,0xab,0xc8,0xba,0xdf,0xce,0xb2,0xb7,0xb8,0xcb,0xcc,0xd1,0xbb,0xdd,0xec,0xc5,0xc9,0x73,0xb7,0x91,0xf0,0xb7,0xe7,0x76,0xb1,0xc9,0xd0,0xb0,0xbb,0xdd,0xdf,0xc6,0xd6,0x7f,0xca,0xb7,0xec,0xc9,0xda,0x9f,0xb4,0xd8,0x7f,0xc5,0xc8,0xe1,0xba,0xb3,0xe1,0xa7,0xb5,0x86,0xd7,0x84,0xe1,0xbb,0xb4,0xcb,0xcb,0xcc,0x85,0xdf,0xef,0x93,0xe0,0xb4,0x88,0xc2,0xdf,0xc4,0xdc,0xca,0xae,0x8d,0x92,0xda,0xb7,0xe1,0x98,0xc6,0xcd,0xa3,0xcc,0xc8,0xb7,0xc6,0xec,0x97,0xb8,0xd6,0xb2,0xcd,0xc4,0xd3,0xdd,0xca,0xcb,0x7d,0xc0,0xc5,0xec,0x7e,0xeb,0xb7,0xb8,0x84,0xc1,0xa1,0x86,0x9b,0xe4,0x8f,0xe2,0xa1,0xbb,0xc8,0xec,0x84,0xe1,0xbb,0xb4,0xcb,0xcb,0xcc,0x83,0xa0,0xb3,0xbc,0xaa,0xb6,0xb9,0xb7,0xec,0xc8,0xa3,0xc2,0xab,0xd2,0xbe,0xd8,0xbe,0xaa,0xe2,0x7d,0x99,0x6b,0xc3,0xbc,0xa2,0xca,0xd4,0xb7,0xb8,0xd6,0xb2,0xce,0xb3,0x90,0xb5,0x8f,0x95,0x69,0x83,0xc8,0xdf,0xc9,0xa0,0x93,0x99,0xd8,0xc9,0xcd,0xc4,0xd6,0xa6,0xb8,0xe0,0xb1,0xc7,0x99,0xe2,0xb7,0xe7,0x99,0xb5,0xc8,0xbc,0x8c,0xca,0xce,0xd9,0xc4,0xe0,0x9d,0xc4,0xb3,0xd8,0xb7,0xe7,0xc8,0x88,0xc5,0xca,0xc9,0xb1,0x9f,0xd5,0x80,0xd1,0xaa,0xbb,0xc8,0xbd,0xc5,0xd9,0xbb,0x87,0xd8,0x7f,0xcd,0xc4,0xd3,0xdd,0xca,0x98,0xad,0xbf,0xcf,0xc6,0xbb,0xe3,0xbd,0xba,0xcc,0x82,0xd0,0x83,0x9c,0x9d,0xbd,0xd3,0xbb,0xa6,0xbb,0xe8,0xbd,0xe9,0xbe,0x6f,0x8d,0x92,0xd6,0xbb,0xe3,0xed,0xc4,0xdc,0x62,0xcc,0xbb,0xed,0xd3]

      5:然后把密钥、加密代码、解密函数等拷贝到你的程序中

    var arrBase=[
    "9876543210zyxwvutsrqponmlkjihgfedcbaABCDEFGHIJKLMNOPQRSTUVWXYZ",
    [0x56,0x46,0x64,0x57,0x64,0x56,0x6f,0x78,0x52,0x6e,0x42,0x5a,0x56,0x7a,0x56,0x75]];
    var pw=[
    [0x7e,0x55,0x41,0x5e,0x19,0x5b,0x5c,0x59,0x5d,0x1a,0x1b,0x50,0x15,0x1d,0x17,0xe,0x19,0x1d,0x11,0x45,0x1a,0x14,0x1a,0x16,0x0,0x11,0x2],
    [0x14,0x14,0x5,0x53,0x30,0x14,0x2,0x12,0x50,0x18,0x56,0x51,0x2,0x12,0x6,0x6,0x13,0x3e,0x16,0xd,0x52,0x13,0x5b,0x53,0x59,0x55,0x47,0x5b,0x58,0x1a,0x53],
    [0x25,0x8,0x1e,0x3,0x42,0x1f,0x1,0x1a,0x1e,0x3,0x40,0x41,0xe,0xa,0x18,0x8,0x5f,0x41,0x6,0x6,0x4,0x1c,0xf,0x24,0xa,0x45,0x47,0x4f,0x5d,0x47,0xc,0x8,0x1e,0xe,0x5e,0x43,0x18,0xe,0x1c,0x12,0xd,0x26,0xc,0x43,0x45,0x44,0x4e,0x40,0x50,0x5f,0x5e,0x5d,0x5a,0x5b,0x5c,0x5d,0x5e,0x46,0x4b],
    [0x40,0x4ea9,0x594d,0x664a,0x44,0x6f,0x63,0x2f,0x6a,0x41,0x40,0x676b,0x76e0,0x7b49,0x46,0x66,0x68,0x62,0x26,0x4,0x16,0x2e,0xb,0xb,0x12,0x2c,0x14,0x27,0x24,0xa,0x4a,0x1a,0x48,0x45,0xb,0x68,0x63,0x26,0x68,0x4a,0x42,0x41,0x44,0x540d,0x44],
    [0x26,0x2a,0x20,0x3c,0x39,0x64,0x6c,0x2b,0x28,0x29,0x60,0x6f,0x7e],
    [0xbc,0xbb,0xd2,0xba,0xd8,0xbf,0xde,0xe6,0x72,0xb2,0xa7,0xbd,0xc5,0xde,0xbb,0xbf,0xa9,0x6e,0x8d,0xd2,0xda,0xb7,0xe1,0x98,0xc4,0xd3,0xb5,0x97,0x7d,0xa1,0x91,0xeb,0xb7,0xb8,0x84,0xc7,0xdb,0x97,0xe1,0xea,0x8f,0xcf,0xb4,0xc1,0xcb,0xe7,0xbb,0xe3,0xca,0xb9,0xbf,0x87,0xc1,0x91,0xe5,0xd9,0xc4,0x8e,0xab,0xc8,0xba,0xdf,0xce,0xb2,0xb7,0xb8,0xcb,0xcc,0xd1,0xbb,0xdd,0xec,0xc5,0xc9,0x73,0xb7,0x91,0xf0,0xb7,0xe7,0x76,0xb1,0xc9,0xd0,0xb0,0xbb,0xdd,0xdf,0xc6,0xd6,0x7f,0xca,0xb7,0xec,0xc9,0xda,0x9f,0xb4,0xd8,0x7f,0xc5,0xc8,0xe1,0xba,0xb3,0xe1,0xa7,0xb5,0x86,0xd7,0x84,0xe1,0xbb,0xb4,0xcb,0xcb,0xcc,0x85,0xdf,0xef,0x93,0xe0,0xb4,0x88,0xc2,0xdf,0xc4,0xdc,0xca,0xae,0x8d,0x92,0xda,0xb7,0xe1,0x98,0xc6,0xcd,0xa3,0xcc,0xc8,0xb7,0xc6,0xec,0x97,0xb8,0xd6,0xb2,0xcd,0xc4,0xd3,0xdd,0xca,0xcb,0x7d,0xc0,0xc5,0xec,0x7e,0xeb,0xb7,0xb8,0x84,0xc1,0xa1,0x86,0x9b,0xe4,0x8f,0xe2,0xa1,0xbb,0xc8,0xec,0x84,0xe1,0xbb,0xb4,0xcb,0xcb,0xcc,0x83,0xa0,0xb3,0xbc,0xaa,0xb6,0xb9,0xb7,0xec,0xc8,0xa3,0xc2,0xab,0xd2,0xbe,0xd8,0xbe,0xaa,0xe2,0x7d,0x99,0x6b,0xc3,0xbc,0xa2,0xca,0xd4,0xb7,0xb8,0xd6,0xb2,0xce,0xb3,0x90,0xb5,0x8f,0x95,0x69,0x83,0xc8,0xdf,0xc9,0xa0,0x93,0x99,0xd8,0xc9,0xcd,0xc4,0xd6,0xa6,0xb8,0xe0,0xb1,0xc7,0x99,0xe2,0xb7,0xe7,0x99,0xb5,0xc8,0xbc,0x8c,0xca,0xce,0xd9,0xc4,0xe0,0x9d,0xc4,0xb3,0xd8,0xb7,0xe7,0xc8,0x88,0xc5,0xca,0xc9,0xb1,0x9f,0xd5,0x80,0xd1,0xaa,0xbb,0xc8,0xbd,0xc5,0xd9,0xbb,0x87,0xd8,0x7f,0xcd,0xc4,0xd3,0xdd,0xca,0x98,0xad,0xbf,0xcf,0xc6,0xbb,0xe3,0xbd,0xba,0xcc,0x82,0xd0,0x83,0x9c,0x9d,0xbd,0xd3,0xbb,0xa6,0xbb,0xe8,0xbd,0xe9,0xbe,0x6f,0x8d,0x92,0xd6,0xbb,0xe3,0xed,0xc4,0xdc,0x62,0xcc,0xbb,0xed,0xd3]];
    function _999(pw){var pn="";for(var k=0;k<pw.length;k++)pn+=String.fromCharCode(pw[k]-arrBase[1][k%arrBase[1].length]);return pn}
    eval(_999(pw[pw.length-1]));

      6:把程序中需要替换的①②③④语句替换成解密语句DecodeJS(pw,0)并执行解密代码,参考如下:

    //return Math.ceil((d + 6 - w) / 7);        //①
    return eval(DecodeJS(pw,0));
    //document.write("今天是"+ m + "月的第 " + getMonthWeek(y, m, d) + " 周");    //④
    document.write(eval(DecodeJS(pw,3)));

      好了,再次运行你的程序,完美执行。

      另外,有什么需要注意说明,我后续也会补上来。

    注意:

     1:在JS原代码段的输入框中,进来不要有空格行和回车行等空行,因为空行也会参与加密代码的运算中。

     2:生成解密函数的加密代码可以单独使用,或放到前面生成的加密代码段数组中,前提是加密代码段数组中必须提前要有占位行,如我上面的替换代码。

    说明:以上代码为自己整理,转载请注明出处。

  • 相关阅读:
    [HDFS Manual] CH6 HDFS Federation
    [HDFS Manual] CH4 HDFS High Availability Using the Quorum Journal Manager
    [HDFS Manual] CH3 HDFS Commands Guide
    [HDFS Manual] CH2 HDFS Users Guide
    [HDFS Manual] CH1 HDFS体系结构
    [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存
    [MySQL Status] Queries,Questions,read/s区别,Com_Commit和handle_commit
    [MySQL TroubleShooting] 服务启动报错
    [MySQL Code]Innodb 锁分配和锁冲突判断
    [MySQL Reference Manual]17 Group Replication
  • 原文地址:https://www.cnblogs.com/mq0036/p/4902522.html
Copyright © 2011-2022 走看看