1個(gè)簡單的 JavaScript 數(shù)值加密算法
以下是一個(gè)簡單的 JavaScript 數(shù)值加密算法示例:
function encrypt(num) {
?// 將數(shù)字轉(zhuǎn)換為字符串
?let str = num.toString();
?let encryptedStr = '';
?// 遍歷每個(gè)字符并進(jìn)行加密
?for (let i = 0; i < str.length; i++) {
? ?// 將字符轉(zhuǎn)換為 ASCII 碼并加上常量 10
? ?let encryptedCharCode = str.charCodeAt(i) + 10;
? ?// 將加密后的字符拼接起來
? ?encryptedStr += String.fromCharCode(encryptedCharCode);
?}
?return encryptedStr;
}
function decrypt(str) {
?let decryptedNum = '';
?// 遍歷每個(gè)字符并進(jìn)行解密
?for (let i = 0; i < str.length; i++) {
? ?// 將字符轉(zhuǎn)換為 ASCII 碼并減去常量 10
? ?let decryptedCharCode = str.charCodeAt(i) - 10;
? ?// 將解密后的 ASCII 碼轉(zhuǎn)換為數(shù)字并拼接起來
? ?decryptedNum += String.fromCharCode(decryptedCharCode);
?}
?// 將字符串轉(zhuǎn)換為數(shù)字并返回
?return parseInt(decryptedNum);
}
var n1 = encrypt(123);
console.log(n1);
console.log(decrypt(n1));
這個(gè)示例將給定的數(shù)字加密為一個(gè)字符串,然后再將其解密回原始數(shù)字。
加密算法將每個(gè)字符的 ASCII 碼加上常量 10,并將結(jié)果轉(zhuǎn)換為字符。解密算法將每個(gè)字符的 ASCII 碼減去常量 10,并將結(jié)果拼接起來后轉(zhuǎn)換為數(shù)字。
如果再不想算法邏輯泄露,可將js代碼用JShaman進(jìn)行混淆加密,加密后的代碼將變的不可讀、不可分析,但功能依然正常。