0

ATL_BASE64_FLAG_NOPADフラグを指定したBase64Encodeを使用してエンコードされたbase64エンコード文字列をデコードする方法。

4

1 に答える 1

3

それが単に「最後にを置かない」ことを意味すると仮定すると=、パディングを直接追加できます。

public static string Base64PadEnd(string unpadded)
{
    switch(unpadded.Length % 4)
    {
        case 0: return unpadded;
        case 2: return unpadded + "==";
        case 3: return unpadded + "=";
        default: throw new ArgumentException("Invalid unpadded base64");
    }
}

(base64の動作方法では、最後のブロックが1文字のパディングされていない値になることはありません。)

パディングを追加したら、Convert.FromBase64String通常どおりに使用します。

編集:コメントに記載されているように、base64文字列に空白が含まれている場合は、パディングを追加する前に最初に空白を削除する必要があります。単純なtext = Regex.Replace(text, @"\s", "")ものでうまくいくはずです。

于 2012-06-11T17:31:33.840 に答える