今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

base64暗号化の問題

背景#

プロジェクトでは、QQ のフラッシュ写真機能を模倣しています。画像の送信ロジックは、まず base64 に変換し、次に暗号化し、最後に暗号化された文字列をファイルとして送信します。受信時には、まずファイルをダウンロードし、次にファイルの内容を読み取り、その後に復号化し、最後に base64 文字列の形式で画像を生成しますが、常に失敗してしまいます。

解決方法#

最初は暗号化と復号化の問題だと思いましたが、注意深く調査した結果、この仮説は除外しました。最後に復号化された文字列を VSCode にコピーして注意深く観察すると、そこには多くの\r\nが含まれていることに気付きました。

検索した結果、これは base64 暗号化の問題であり、base64 は 1 行に 76 文字を超えることはできず、超えると改行文字(Windows では\r\n、Linux では\n)が追加されます。解析後、改行文字と改行はエラーメッセージになるため、解決策は\r\nを空の文字列に置き換えてから画像を生成することです。

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。