簡體   English   中英

如何在Go中以Perl編碼的URL安全解碼Base64?

[英]How to URL Safe decode Base64 in Go, encoded in Perl?

我有一個URL安全編碼的字符串(由Perl生產),我需要在Go中進行解碼。 這是Perl和Go中的兩個程序-Perl可以正常工作,但是Go會引發錯誤。 我聽不懂 請幫忙!

=== Perl代碼-工作正常

#!/usr/bin/env perl
use common::sense;
use MIME::Base64::URLSafe;

my $str = 'Oi6cQzmolrUhkgHsNehtj9p_OsasB_6CIeygK0owoxTsXCtVWyQi-7DXxIJiaV-kSc6PGNC6uNz5V0A9QOGCaeCy6PolQY2Lt_v4JM42VEbsuML8guHfMO0ydvbXVcCR-yLfkz5CO0f-P1hVqxJBD8qPvk1t1DRzqmHP41DSfIm_WzlhtITnd_Wjt6E3CFS78HL3XjJlM-QBW9Z_GZgic8y7TlOWFzCRUf2Q-EZschrDi9l81E93XBNKe8knInL_uFN_oK_ob7fjnkGJO54RNn3coVsrzuIoNa6AI6oWLfsaJ5NyQYor5P0';

say urlsafe_b64decode($str);

===執行代碼-出現錯誤

package main

import (
    b64 "encoding/base64"
    "fmt"
)

func main() {
    str := "Oi6cQzmolrUhkgHsNehtj9p_OsasB_6CIeygK0owoxTsXCtVWyQi-7DXxIJiaV-kSc6PGNC6uNz5V0A9QOGCaeCy6PolQY2Lt_v4JM42VEbsuML8guHfMO0ydvbXVcCR-yLfkz5CO0f-P1hVqxJBD8qPvk1t1DRzqmHP41DSfIm_WzlhtITnd_Wjt6E3CFS78HL3XjJlM-QBW9Z_GZgic8y7TlOWFzCRUf2Q-EZschrDi9l81E93XBNKe8knInL_uFN_oK_ob7fjnkGJO54RNn3coVsrzuIoNa6AI6oWLfsaJ5NyQYor5P0"

    fmt.Println("source B64:", str)
    _, err := b64.URLEncoding.DecodeString(str)

    if err != nil {
        fmt.Println("error b64:", err)
    }
}

===結束

由於解碼返回截斷的結果,因此無法在下一步中使用它。

沒有填充時,請使用RawURLEncoding

_, err := b64.RawURLEncoding.DecodeString(str)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM