0

MySQL テーブルからの暗号化/復号化された値に関する 2 つのクエリ。

1)値が暗号化されているため、ORDER BYが出力され、JavaScriptがa)正しく、b)まったくソートされないため、これらをソートするにはどうすればよいですか。以下のコード、言い訳の書式設定。

2)「値の間」をどのように照会しますか

前もって感謝します。

<html>

<body>
  <table>
      <tr>
<?php
// Connects to Server, queries all on that table.
$db_connect=mysql_connect("$host", "$username", "$password")or die("Sorry, Poor or No Connection");
$db_found=mysql_select_db("$db_name")or die("Sorry, Cannot Connect to Database");
$result=mysql_query("SELECT * FROM $tbl_name");

// Creates Table to be used
echo "
  <th>First Name</th>
  <th>Last Name</th>
</tr>";

while($row = mysql_fetch_array($result)) {
  // Decrypts table IDs
  $dec_FName = decrypt($row['FName'],'SECUREKEY');
  $dec_LName = decrypt($row['LName'],'SECUREKEY');

  echo "<tr>";
    <echo>"<td>" . $dec_FName . "</td>";
    <echo>"<td>" . $dec_LName . "</td>";
  echo "</tr>";
  }
  echo "</table>";

  mysql_close();
?>

</body>
</html>

アレイを作成する必要があると思います。JavaScript、PHP、またはその他お勧めできるものを喜んで使用します。

4

3 に答える 3

2

これは私にとってはうまくいきます:

$q3='SELECT users.uid,
users.vr,
users.br,
AES_DECRYPT(users.nm1,"123") AS nm1,
AES_DECRYPT(users.nm2,"123") AS nm2,
AES_DECRYPT(users.nm3,"123") AS nm3,
ussys.ty1,
ussys.ty3
FROM users,ussys WHERE users.uid=ussys.uid
ORDER BY nm1 DESC
';

nm1でうまくソートされ、結果としてZack-Willeke-Victor-Roiwan-Plop-Kwab-Krab-Karel-Johannes-Harry-Gerard-Dirk-Cornelis-Bernard-Antonが得られます。

于 2013-03-21T08:48:01.923 に答える
-1

SQLサーバーでこれを行うことはできないと思います。列がすべて暗号化されている場合、意味のある方法で列を並べ替えたりフィルター処理したりすることはできません。

データを PHP に取り込み、そこで並べ替える必要があります。データを復号化すると、PHP の配列処理関数のいずれか、または独自の配列処理関数を使用できるようになります。

明らかに、大規模なデータ セットでは、使用ごとにすべてのデータを取得する必要があるため、これは手に負えないほど高速になります。おそらく、この目的のために一部のデータを暗号化せずに保存できますが、それはセキュリティ ニーズに非常に固有のものであることは明らかです。

于 2012-05-04T10:29:19.107 に答える
-1

この投稿がかなり古いことは知っていますが、同じ問題に遭遇しましたが、これに関する情報はあまりありません。これは私がやったことであり、魔法のように機能します。

 SELECT AES_DECRYPT(column1, '%key%') AS 'column1' FROM `myTable` WHERE
 1 ORDER BY AES_DECRYPT(column1, '%key%') ASC;

復号化する 230 行と 4 列、および並べ替え列を含むテーブルがあり、次の仕様の VPS VM で結果を返すのに 2.5 ミリ秒かかります: 2 Xeon E5 CPU コア、2 GB の RAM、50 GB の SSD。

于 2020-06-22T23:42:44.177 に答える