我们有弹性应用和角度应用,
我正在对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编码,但没有成功。
如果我要做什么,请指路。