代码之家  ›  专栏  ›  技术社区  ›  Javascript Coder

想以某种预期格式对密码值进行编码吗

  •  1
  • Javascript Coder  · 技术社区  · 7 年前

    我们有弹性应用和角度应用, 我正在对password字段的值进行加密,但没有按预期进行加密。flex和ANgular的服务代码是相同的。

    'aa' 所以我应该 3528 作为加密值。听起来很奇怪这就是要求。让我再澄清一下。

    我有一个加密方法,它接受字符串和密钥,然后返回上面提到的编码值。

    let str1 = 'aa';
    
    let pass1 = this._encryptionService.encryptedEncodedString(str1, this.key);
    
    console.log("pass1 correct value should be for aa is 3528 - ", pass1); 
    result in console is   W3Q= but i need 3528
    

    constructor() {
        this.Base64 = require('hi-base64');
    
        this.key = 'some value';
        this.hgDsl = "some value";                   
    }        
    
    byteXor(source, key) {
        var result = new Array(source.length);
        var iLength = source.length;
        var iKeyLength = key.length;
    
        for (var i = 0; i < iLength; i++) {         
            result[i] = (source[i] ^ key.charCodeAt(i % iKeyLength));            
        }
        return result;
    }
    
    encryptUI(content, key) {
        var byteRetValue = bytesConversionUtil.convertStringToBytes(content);        
    
        byteRetValue = this.byteXor(byteRetValue, this.hgDsl);
        byteRetValue = this.byteXor(byteRetValue, key.toLowerCase());
        console.log("encryptUI  byteRetValue ", byteRetValue);
        return byteRetValue;
    }
    
    
    encryptedEncodedString(password, key){ // in flex they are using this
        var encryptedPasswordByteArr = this.encryptUI(password, key);
        var encryptedPasswordStr = bytesConversionUtil.convertBytesToString(encryptedPasswordByteArr);      
        console.log("encryptedPasswordStr ", encryptedPasswordStr);
        var encodedPassword = this.Base64.encode(encryptedPasswordStr);
        return encodedPassword;
    } 
    

    完成此操作后,我得到的编码值为- W3Q= 我怎样才能把它转换成 3528 这是意料之中的。我试着用utf8进行base64编码,然后用ASCII编码,但没有成功。

    如果我要做什么,请指路。

    0 回复  |  直到 7 年前