フロントエンド文字列混同処理、データ暗号化伝送

3170 ワード

文字列混同処理
  • パスワード等の機密データ伝送のセキュリティを強化する
  • クライアント暗号化、サーバ側復号
  • var softdog = require("softdog");
    
    var input = {
        type: "password", 
        value: "abc731"
    }
    
    //      
    var client2serverStr = softdog.encrypt(input.value);
    console.log(client2serverStr);
    
    //       
    var rawStr = softdog.decrypt(client2serverStr);
    console.log(rawStr);
    
    //     
    console.log(rawStr === input.value);
    
  • 特別提示
    暗号化|復号メソッドパラメータデータ型が文字列でない場合、または空の文字列である場合、返される結果はすべて空の文字列です.

  • Code
    softdog
    /***
     * @module {Object} softdog         |  ,        
     * @interface Softdog
     * @method encrypt  ----------       
     * @method decrypt  ----------       
     */
    (function (factory) {
        if (typeof module === "object" && typeof module.exports === "object") {
            var v = factory(require, exports);
            if (v !== undefined) module.exports = v;
        }
        else if (typeof define === "function" && define.amd) {
            define(["require", "exports"], factory);
        }
    })(function (require, exports) {
        "use strict";
        //     
        function _confuse(str, sign) {
            if (typeof str !== 'string' || !str) {
                return '';
            }
            var newStr = '';
            for (var i = 0; i < str.length; i++) {
                newStr += String.fromCharCode(str.charCodeAt(i) + sign * 2);
            }
            return newStr;
        }
        ;
        var softdog = {
            encrypt: function (str) {
                return _confuse(str, 1);
            },
            decrypt: function (str) {
                return _confuse(str, -1);
            }
        };
        return softdog;
    });
    

    DEMO