java - 为什么des加密后输出乱码?
大家讲道理
大家讲道理 2017-04-18 10:09:45
0
8
1101
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(8)
PHPzhong

Parce qu'il ne s'agit plus de données de chaîne UTF-8, ma chère. Vous l'avez chiffré. DES génère des données binaires illisibles. Si vous forcez l'interprétation d'une nouvelle chaîne selon le codage UTF-8, elle sera bien sûr tronquée. Si elle peut être lue directement, à quoi sert-elle de la chiffrer ?
Parce que la plupart des données cryptées sur la base d'algorithmes mathématiques génèrent des blocs binaires ou diffusent des données. Ce n'est qu'après le décryptage que le texte original peut être lu.
Si vous souhaitez que les données cryptées soient stockées sous forme de texte ou de transmission HTTP, vous pouvez encoder les données avec BASE64. Après l'encodage, ce sera une chaîne ASCII sans caractères tronqués (bien sûr, les humains ne peuvent toujours pas la comprendre) .

左手右手慢动作

Après le cryptage, il s'agit d'un tableau d'octets. Tous les tableaux d'octets ne peuvent pas être convertis en chaînes via new String()

小葫芦

Cela peut être dû au fait que vous ne comprenez pas la différence entre le flux de données d'octets de mémoire et la chaîne
Si vous avez utilisé un éditeur de texte pour afficher les données en affichage hexadécimal, vous n'aurez pas cette question.
Chaîne La raison pour laquelle les chaînes peuvent être affichées est parce que les données en mémoire sont conformes à certaines règles de codage, telles que le codage UTF-8
Mais généralement, les données cryptées sont un flux de données mémoire complet, qui ne respecte pas les règles de codage des chaînes de caractères, donc quand. vous utilisez avec force les règles d'encodage de chaîne pour l'analyser, cela deviendra du "code tronqué

".

Mais si le but du cryptage n’est pas correct, alors les gens ne peuvent pas le comprendre

Ce sont juste des caractères tronqués

黄舟

Après le cryptage, il devrait être illisible.

伊谢尔伦

Il existe un article similaire ici https://segmentfault.com/q/10...

PHPzhong

Pourquoi pensez-vous que ce n’est pas du charabia ?

洪涛

Après le cryptage, il s'agit généralement d'un tableau d'octets, qui peut être converti en chaîne hexadécimale

刘奇

Après le cryptage, vous pouvez utiliser Base64,

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal