我正在尝试使用blowfishJS, 但它有一个使其无法使用的错误
//我想说我要加密字符串“house”
var bf = new Blowfish('some key');
var house = "house";
var ciphertext = bf.encrypt(house);
var plaintext = bf.decrypt(ciphertext);
console.log(plaintext); //outputs house00 instead of house
有时它超过2个零。
这可能会有所帮助:
尝试加密的所有字符串无论如何都以“=”结束。所以它会 可以删除“纯文本”字符串末尾的所有零 直到字符“=”出现。
我如何实现这一目标? 假设我有字符串“mystring == 000”,我需要删除最后的所有零。 我已经完成了对“切片”功能的研究,问题是最后没有确定的“位置”,因为我不知道是否会出现2,3或x个零
答案 0 :(得分:1)
您可以使用该索引中的lastIndexOf()
和substr
。例如;
var house = 'house=04543976439859df45345ffd43';
house.substr( 0, house.lastIndexOf('=') + 1 ); // => "house="
lastIndexOf
将返回指定值最后一次出现的索引(在此示例中我执行+ 1
以包含=
字符)。然后我们可以使用substr
来提取该索引之后的所有字符。
答案 1 :(得分:0)
如果你确定字符串以零结尾并修剪直到=使用
,你可以使用正则表达式来执行此操作plaintext.replace(/=(0)+$/g,"=");
答案 2 :(得分:0)
使用正则表达式,您可以删除最后一个之后的任何内容=无论是否为零。
plaintext.replace(/ [^ \ =] + $ /,"");
简单地说,找到一个不包含' ='的最大子字符串。并且它在字符串的末尾并替换为空字符串。