加密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('\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文章中的程序:当前是本月第几周,程序代码如下:
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原代码段”的输入框中,按“加密”按钮,生成加密后的代码数字。生成后的代码数组如下:
[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],
[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:生成解密函数的加密代码可以单独使用,或放到前面生成的加密代码段数组中,前提是加密代码段数组中必须提前要有占位行,如我上面的替换代码。
说明:以上代码为自己整理,转载请注明出处。
加密javascript代码的更多相关文章
- C#执行javascript代码
最近在做网站自动登陆小工具,遇到技术屏障.密码在submit时会使用js进行加密.这时我需要模拟这个加密过程,想到使用C#执行javascript代码. 对于执行javascript代码,纯代码方式使 ...
- 分析JavaScript代码应该放在HTML代码哪个位置比较好
本文总结了多种放置JS代码的方法,需要的朋友可以参考下 在哪里放置 JavaScript 代码? 通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代 ...
- [asp.net mvc 奇淫巧技] 05 - 扩展ScriptBundle,支持混淆加密javascript
一.需求: 在web开发中,经常会处理javascript的一些问题,其中就包括js的压缩,合并,发布版本以及混淆加密等等问题.在asp.net 开发中我们使用ScriptBundle已经可以解决ja ...
- 引爆你的Javascript代码进化
转自:http://www.hicss.net/evolve-your-javascript-code/ 方才在程序里看到一段JS代码,写法极为高明,私心想着若是其按照规范来写,定可培养对这门语言的理 ...
- 扩展ScriptBundle,支持混淆加密javascript
一.需求: 在web开发中,经常会处理javascript的一些问题,其中就包括js的压缩,合并,发布版本以及混淆加密等等问题.在asp.net 开发中我们使用ScriptBundle已经可以解决ja ...
- 用javascript代码拼html
公司新来的同事说,他们是用javascript代码拼html代码的,如果要修改值,就是修改对象的属性. 交代下,我们现在都是用拼字符串的方式拼html代码的.他提到如果写在单独的javascript文 ...
- 引爆你的Javascript代码进化 (转)
转自 海玉的博客 方才在程序里看到一段JS代码,写法极为高明,私心想着若是其按照规范来写,定可培养对这门语言的理解,对JS编程能力提高必是极好的.说人话:丫代码写的太乱,看的窝火! 最近闲暇无事,准备 ...
- JavaScript代码放在HTML代码不同位置的差别
通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代码放置在 HTML 文档的任何地方.但放置的地方,会对 JavaScript 代码的正常执行会有一 ...
- javascript代码 调试方法
你的代码可能包含语法错误,逻辑错误,如果没有调试工具,这些错误比较难于发现. 通常,如果 JavaScript 出现错误,是不会有提示信息,这样你就无法找到代码错误的位置. 在程序代码中寻找错误叫做代 ...
随机推荐
- A(光圈)S(快门) P(程序) M(手动)曝光模式
摄影笔记:http://mp.weixin.qq.com/s/SCzXybbCCE8VzfAQKTqlDw 曝光模式,指的就是M档(手动曝光).A档(Av档,光圈优先).S档(Tv档,快门优先),Au ...
- java构造方法之我见
java中构造方法是作为除了成员方法之外的一种特殊方法,方法名与类名相同.一般类中如果没有明确定义构造方法时,编译器默认为无参构造方法.当我们调用new方法创建对象就是通过构造方法完成的.因此,当有对 ...
- 为什么HDFS的副本数通常选择3?
HDFS采用一种称为机架感知的策略来改进数据的可靠性.可用性和网络带宽的利用率. 在大多数情况下,HDFS的副本系数是3,HDFS的存放策略是一个副本存放在本地机架节点上,另一个副本存放在同一机架的另 ...
- 深入理解Java流机制(一)
一.前言 C语言本身没有输入输出语句,而是调用"stdio.h"库中的输入输出函数来实现.同样,C++语言本身也没有输入输出,不过有别于C语言,C++有一个面向对象的I/O流类库& ...
- SIGGRAPH 2017:深度学习与计算机图形学的碰撞
每年由美国计算机协会(Association of Computing Machinery,简称ACM)计算机图形专业组举办的年会SIGGRAPH,是全球最负盛名的图形学和交互技术盛会.今年已经是这场 ...
- 【Python图像特征的音乐序列生成】关于图像特征的描述词
查阅了很久的资料,决定依据Yoshida的<Image retrieval system using impression words>这篇论文里的词语来定义. Yoshida 等的 Ar ...
- MVC批量上传文件(使用uploadify)
<script src="JS/jquery-1.8.3.js"></script> <script src="uploadify/jque ...
- JEECMS开发问题汇总
1 添加Controller 将controller文件放在com.jeecms.cms.action.front包中, 图1.1 然后在jeecms-servlet-front-action.xml ...
- CentOS7-samba文件共享服务
简介: Samba,是在Unix上实现SMB(Server Message Block)的一个工具套件.而SMB通常是windows用来实现共享的,包括文件和打印机等.而Unix上装上SMB,则使得U ...
- IntelliJ IDEA java设置程序运行时内存
Run/Edit Configurations Configuration/VM options 例如:设置运行内存为:-Xmx3m -Xms3m