【问题标题】:issue decoding base64 text: prefix "77u_" causes junk output问题解码base64文本:前缀“77u_”导致垃圾输出
【发布时间】:2020-05-09 22:50:27
【问题描述】:

我目前正在尝试解码我​​的 base64 编码字符串。我面临的问题是它给了我垃圾解码结果但是当我从它前面删除 77u_ 时,解码结果会很好。我的问题是,还有其他方法可以解码吗?

以下是我的编码字符串:

77u_RGF0ZSxUeXBlLENvbmZpcm1hdGlvbiBDb2RlLFN0YXJ0IERhdGUsTmlnaHRzLEd1ZXN0LExpc3RpbmcsRGV0YWlscyxSZWZlcmVuY2UsQ3VycmVuY3ksQW1vdW50LFBhaWQgT3V0LEhvc3QgRmVlLENsZWFuaW5nIEZlZSxHcm9zcyBFYXJuaW5ncyxPY2N1cGFuY3kgVGF4ZXMNCjEwLzMwLzIwMTgsUmVzZXJ2YXRpb24sSE05U1BUOUNYQywxMC8yOS8yMDE4LDMsQWFyb24gSmFibG9uc2tpLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCwxNDUuNTAsLDQuNTAsMzAuMDAsMTUwLjAwLDIxLjANCjEwLzI2LzIwMTgsUmVzZXJ2YXRpb24sSE0zM0gyWEU0SiwxMC8yNS8yMDE4LDMsWWIgQmFiaWUsRWxlZ2FudCBQcml2YXRlIFJvb20gaW4gYSBNb2Rlcm4gTHV4dXJ5IEJ1bmdhbG93LCwsVVNELDE3NC42MCwsNS40MCwzMC4wMCwxODAuMDAsMjUuMg0KMTAvMjIvMjAxOCxSZXNlcnZhdGlvbixITVdSRk1KNU1LLDEwLzIxLzIwMTgsNCxHYWJyaWVsbGEgRGFsdG9uLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCwxNjQuOTAsLDUuMTAsMzAuMDAsMTcwLjAwLDIzLjgNCjEwLzE4LzIwMTgsUmVzZXJ2YXRpb24sSE1NUFk4UDJRRiwxMC8xNy8yMDE4LDQsUMOpdGVyIFZhcmdhLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCwyMjMuMTAsLDYuOTAsMzAuMDAsMjMwLjAwLDMyLjINCjEwLzE2LzIwMTgsUmVzZXJ2YXRpb24sSE1KODVDTTNCWiwxMC8xNS8yMDE4LDIsR3JlZ29yIFNwcmljayxFbGVnYW50IFByaXZhdGUgUm9vbSBpbiBhIE1vZGVybiBMdXh1cnkgQnVuZ2Fsb3csLCxVU0QsODcuMzAsLDIuNzAsMzAuMDAsOTAuMDAsMTIuNg0KMTAvMTMvMjAxOCxSZXNlcnZhdGlvbixITVFOU1BRQUpYLDEwLzEyLzIwMTgsMyxBbWJlciBEdWNrc3dvcnRoLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCwxNDUuNTAsLDQuNTAsMzAuMDAsMTUwLjAwLDIxLjANCjEwLzEyLzIwMTgsUmVzZXJ2YXRpb24sSE1UQlFCREFFMiwxMC8xMS8yMDE4LDIsR29yZG9uIEJsZWVjaG1vcmUsRWxlZ2FudCBQcml2YXRlIFJvb20gaW4gYSBNb2Rlcm4gTHV4dXJ5IEJ1bmdhbG93LCwsVVNELDU4LjIwLCwwLjk4LDAuMDAsNTkuMTgsOC40DQoxMC8xMi8yMDE4LFJlc2VydmF0aW9uLEhNWEZEVzlNRkosMTAvMTEvMjAxOCwxLEhhbXphIE5zb3VyLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCw1My4zNSwsMS42NSwzMC4wMCw1NS4wMCw3LjcNCjEwLzEwLzIwMTgsUmVzZXJ2YXRpb24sSE1XWDVQQ0hBUSwxMC8wOS8yMDE4LDIsTGVhaCBXLEVsZWdhbnQgUHJpdmF0ZSBSb29tIGluIGEgTW9kZXJuIEx1eHVyeSBCdW5nYWxvdywsLFVTRCw4Ny4zMCwsMi43MCwzMC4wMCw5MC4wMCwxMi42DQoxMC8wNC8yMDE4LFJlc2VydmF0aW9uLEhNQzNGTk04RFcsMTAvMDMvMjAxOCw2LFNhbmRybyBDemVrYWksRWxlZ2FudCBQcml2YXRlIFJvb20gaW4gYSBNb2Rlcm4gTHV4dXJ5IEJ1bmdhbG93LCwsVVNELDM3OC4zMCwsMTEuNzAsMzAuMDAsMzkwLjAwLDU0LjYNCjEwLzAxLzIwMTgsUmVzZXJ2YXRpb24sSE1UUzk0Uk1FMywwOS8zMC8yMDE4LDMsQnJhbmRlbiBIaWNrcyxFbGVnYW50IFByaXZhdGUgUm9vbSBpbiBhIE1vZGVybiBMdXh1cnkgQnVuZ2Fsb3csLCxVU0QsMTE2LjQwLCwzLjYwLDMwLjAwLDEyMC4wMCwxNi44DQo

【问题讨论】:

    标签: base64 decode


    【解决方案1】:

    _ 搞砸了结果。其他一切都完美无缺 base64 编码。 base64 code table 不包含_,它是base64url 编码中/ 的替代字符。

    当您将_ 替换为/ 时,解码工作正常。 当我在https://www.base64decode.org/ 上测试它并选择ASCII 作为源字符集时,我在文本前面得到,即UTF-8 的byte order mark。当我改为utf-8时,文本前面没有任何可见的内容。

    在 node.js 中的一个简短测试也证明了 '77u/' 确实是 BOM 的 base64 代码:

    var messageB64 ='77u/'
    var buf = Buffer.from(messageB64, 'base64'); 
    console.log(buf) // output: <Buffer ef bb bf>
    

    结论:

    • 您的数据已base64url解码

    • 您应该在解码之前将其改回 base64 代码

    • 多余的字符是无害的字节顺序标记,如果您使用 utf-8 编码,它是不可见的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 2011-02-24
      • 1970-01-01
      相关资源
      最近更新 更多