2012-01-17 8 views
1

CRLFが原因でbase64文字列のデコード/エンコードに問題があります。 私はこのライブラリBase64.hとこれを試しましたが、NSData+Base64.hですが、どちらもうまく扱えません。CRLFiOS Base64 CRLFを防止するLib

誰でもこの問題が以前に発生しましたか?

誰もこのようなことを避けるためのアドバイスをしていますCRLF?私はAndroid's Java libがこれを '0'に置き換えていると思いますが、正しいですか?

public static final int CRLF = 4; 
+1

CRLFは、CR:0x0dの後にLF:0x0aという2文字を意味します。 – zaph

+0

デコードされた文字列の長さは23ですが、24にする必要があります。続ける前にそれらの文字を追加する必要がありますか? –

+1

デコードされた文字列は24になるはずですか? Base64表現と文字列を質問に追加します。これは答えに役立ちます。 – zaph

答えて

1

は、Base64は、非MOD 3の長さを示すことが可能末尾 '=' で、すなわち '+ /-ZA-Z0-9' 64個の文字をエンコードします。 CR + LFはラインセパレータとして使用することができ、通常は各ラインを別々にデコードします。

CR + LFバリアントの詳細については、Wikipedia Base64を参照してください。

"+ vqbiP7s3oe7/puJ8v2a3fOYnf3vmpap" 復号は次のとおり "FA FA 9B 88 FE EC DE 87 BB FE 9B 89 F2 FD 9A DD F3 98 9D FD EF 9A 96 A9"
最後の文字が0ではありません。

関連する問題