1

パスをハッシュしてXMLファイルに保存するために使用QCryptographicHashしていますが、私の問題はQDomDocument、xmlファイル内の他の要素を読み取って更新するために使用すると、要素のパスワードが変更され、その方法がわかりません。

助けてください!!!

これが正しいデータを含む私のxmlファイルです

<?xml version='1.0' encoding='UTF-8'?>
<Folders>
 <folder DriveL="" Mounted="false" PassW="!Å?L,-;©Óñn?Ãs?N·¦ø" Path="C:\MyProjects\DiskCrypt\testFolder\TestFolder"/>

データの読み取りと変更に使用するドライブ文字を更新する必要がある場合はQDomDocument、すべて問題ありません。私のアプリケーションは、ユーザー出口が再実行後にxmlファイルを復号化する場合、xmlファイルを暗号化しますが、復号化後に次のようになります。

<?xml version='1.0' encoding='UTF-8'?>
<Folders>
 <folder DriveL="" Mounted="false" PassW="!??L,-;???n??s?N???" Path="C:\MyProjects\DiskCrypt\testFolder\TestFolder"/>
</Folders>

そうPassWあるべきです"!Å?L,-;©Óñn?Ãs?N·¦ø"が、暗号化後は"!??L,-;???n??s?N???"、暗号化と復号化に単純なアルゴリズムを使用します(AES128)。

4

1 に答える 1

1

テキストエンコーディングの問題を回避し、XMLファイルを人間が読めるようにするために、バイナリデータをXMLドキュメントに直接入れないでください。代わりに、base64または16進エンコーディングを使用してください。

ハッシュはバイナリ形式で生成されるため、そこから取得したバイト配列QCryptographicHashを呼び出す必要があります。.toHex()(Base64も問題なく、さらに小さくなりますが、ハッシュの16進エンコードは、人間が読める形式にするための「デフォルト」の方法です。)

于 2012-10-06T10:48:20.460 に答える