栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

无法解密Xor-Base64文本

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

无法解密Xor-Base64文本

您应该使用

DepreRuneInString
而不只是
slice
字符串到字节。

操场上的解决方案:https :
//play.golang.org/p/qi_6S1J_dZU

package mainimport (    "fmt"    "unipre/utf8")func main() {    fmt.Println("Hello, playground")    k:="1234fd23434"    input:="The 我characterode我 113 is equal to q"    fmt.Println(EncryptDecrypt(input,k))    // expect: "eZV扷ZRFRWEWA[戣[@GRX@^B"}func EncryptDecrypt(input, key string) (output string) {    keylen := len(key)    count := len(input)    i := 0    j := 0    for i < count {        c, n := utf8.DepreRuneInString(input[i:])        i += n        k, m := utf8.DepreRuneInString(key[j:])        j += m        if j >= keylen { j = 0        }        output += string(c ^ k)    }    return output}

与您的js结果相比

function xorStrings(key,input){  var output='';  for(var i=0;i<input.length;i++){    var c = input.charCodeAt(i);    var k = key.charCodeAt(i%key.length);    output += String.fromCharCode(c ^ k);  }  return output;}console.log(xorStrings('1234fd23434',"The 我characterode我 113 is equal to q"))// expect: "eZV扷ZRFRWEWA[戣[@GRX@^B"

测试结果是相同的。

这就是为什么。

在旅途中,当您设置字符串范围时,将迭代字节,但是javascript

charCodeAt
是针对字符而不是字节。在utf-8中,字符长度可能为2或3个字节。这就是为什么您得到不同的输出的原因。

在操场上测试https://play.golang.org/p/XawI9aR_HDh

package mainimport (    "fmt"    "unipre/utf8")var sentence = "The 我quick brown fox jumps over the lazy dog."var index = 4func main() {    fmt.Println("slice of string...")    fmt.Printf("The byte at %d is |%s|, |%s| is 3 bytes long.n",index,sentence[index:index+1],sentence[index:index+3])    fmt.Println("runes of string...")    ru, _ := utf8.DepreRuneInString(sentence[index:])    i := int(ru)    fmt.Printf("The character pre at %d is|%s|%d|    n",index, string(ru), i)}

输出是

slice of string...The byte at 4 is |�|, |我| is 3 bytes long.runes of string...The character pre at 4 is|我|25105|


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448225.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号