光阴似箭催人老,日月如移越少年。
UTF-8 文字列データではなくなったからです。あなたはそれを暗号化しました。 DES は読み取り不可能なバイナリ データを生成します。新しい String を UTF-8 エンコーディングに従って強制的に解釈すると、当然文字化けします。それが直接読み取れるのであれば、暗号化する意味はありません。 数学的アルゴリズムに基づいて暗号化されたほとんどのデータはバイナリ ブロックまたはストリーム データを生成するためです。復号化して初めて元のテキストを読むことができます。 暗号化したデータをテキストやHTTP通信として保存したい場合は、BASE64でエンコードすれば文字化けのないASCII文字列になります(もちろん人間には理解できません)。 。
暗号化後はバイト配列になります。new String()
これは、メモリ バイト データ ストリームと文字列の違いを理解していないことが原因である可能性があります。テキスト エディタを使用してデータを 16 進表示で表示したことがある場合は、この質問は発生しません。文字列文字列が表示される理由は、メモリ データが UTF-8 エンコードなどの特定のエンコード ルールに準拠しているためです。 しかし、一般に、暗号化されたデータは完全なメモリ データ ストリームであり、文字列エンコード ルールに準拠していないため、文字列エンコード規則を強制的に使用して解析すると、「文字化けコード」になります。
しかし、暗号化の目的が正しくなければ、人々はそれを理解できないでしょうか?
ただの文字化けです
暗号化後は判読できなくなるはずです。
ここに同様の記事があります https://segmentfault.com/q/10...
なぜ意味不明ではないと思いますか?
暗号化後は通常バイト配列になり、16 進数の文字列に変換できます
暗号化後は、Base64 を使用できます。
UTF-8 文字列データではなくなったからです。あなたはそれを暗号化しました。 DES は読み取り不可能なバイナリ データを生成します。新しい String を UTF-8 エンコーディングに従って強制的に解釈すると、当然文字化けします。それが直接読み取れるのであれば、暗号化する意味はありません。
数学的アルゴリズムに基づいて暗号化されたほとんどのデータはバイナリ ブロックまたはストリーム データを生成するためです。復号化して初めて元のテキストを読むことができます。
暗号化したデータをテキストやHTTP通信として保存したい場合は、BASE64でエンコードすれば文字化けのないASCII文字列になります(もちろん人間には理解できません)。 。
暗号化後はバイト配列になります。new String()
を使用してすべてのバイト配列を文字列に変換できるわけではありません。これは、メモリ バイト データ ストリームと文字列の違いを理解していないことが原因である可能性があります。
テキスト エディタを使用してデータを 16 進表示で表示したことがある場合は、この質問は発生しません。
文字列文字列が表示される理由は、メモリ データが UTF-8 エンコードなどの特定のエンコード ルールに準拠しているためです。
しかし、一般に、暗号化されたデータは完全なメモリ データ ストリームであり、文字列エンコード ルールに準拠していないため、文字列エンコード規則を強制的に使用して解析すると、「文字化けコード」になります。
しかし、暗号化の目的が正しくなければ、人々はそれを理解できないでしょうか?
ただの文字化けです
暗号化後は判読できなくなるはずです。
ここに同様の記事があります https://segmentfault.com/q/10...
なぜ意味不明ではないと思いますか?
暗号化後は通常バイト配列になり、16 進数の文字列に変換できます
暗号化後は、Base64 を使用できます。