加密javascript代碼

最近看了個js日曆,裏面用到了加密,看了下,本身也模仿作加密,如今只能加密通常的javascript語句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>
            

暫時先寫這麼多,後續我還會再次增長加密解密的其餘功能的。html

 

JS加密解密第二版


今天是2015-11-21 星期六,在家裏沒啥事,又把前面的加密解密函數進行了整理,發出來,方便之後使用,上次的主要偏向於功能方面,此次偏向於應用方面,下面看給出代碼以及個人使用說明。java

<!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('\n');
    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?"\n":"";  //①②
    }    
    document.getElementById("v2").value=res;
}

//解密,反編譯加密後的代碼,所有使用①的代碼進行解密,通常用於測試
function fan()
{
    var obj=document.getElementById("v2");
    var str=obj.value;
    var o_arr=str.split("\n");
    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+="\n";
    }    
    document.getElementById("demo").innerText=res;
}

//執行加密代碼,
function doit()
{
    var obj=document.getElementById("v2");
    var str=obj.value;
    var o_arr=str.replace(/(\[)*(\],)*(\])*/ig,"").split("\n");
    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文章中的程序:當前是本月第幾周,程序代碼以下:post

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代碼段整理出來,若是是函數或多條語句,最好是每一個單獨執行的代碼段壓縮下,整理成每行是一個執行單元的語句。 
   這樣的好處是一:方便後續的執行,二:大大減小加密後的代碼。
   因爲我也把解密函數進行加密,因此預留了兩行(後面會用到)。ui

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:點擊「生成加密後的解密函數」按鈕,生成加密後的解密函數:url

[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:生成解密函數的加密代碼能夠單獨使用,或放到前面生成的加密代碼段數組中,前提是加密代碼段數組中必須提早要有佔位行,如我上面的替換代碼。

說明:以上代碼爲本身整理,轉載請註明出處。

相關文章
相關標籤/搜索