MySQL - Datenbankinhalte mit AES verschlüsseln und auslesen


<?php

// Datenbankinhalte mit AES verschlüsseln und auslesen

/*
CREATE TABLE `secrets` (
 `id` INT(11) NOT NULL AUTO_INCREMENT,
 `content` LONGBLOB NULL,
 PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
*/

$key "mCgCizeXzYrXXTvxrNmrIsKO8vdaFs3ZzTo7UcQ8mr+Q/6KIpJDMdgeKH57weCqLH5vJ6aquAuI=";

$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8''root'''); 

if (
$_SERVER["REQUEST_METHOD"] == "POST") {
 
$insert $db->prepare("INSERT INTO `secrets` (`content`) VALUES (AES_ENCRYPT(:content, :key));");
 
$insert->bindValue(':content'$_POST["content"]);
 
$insert->bindValue(':key'$key);
 
$insert->execute();
}

$select $db->prepare("SELECT AES_DECRYPT(`content`, :key) AS `decrypt` FROM `secrets`");
$select->bindValue(':key'$key);
$select->execute();
$contents $select->fetchAll();

$output '';
foreach (
$contents as $content) {
 
$output .= '<p>' $content["decrypt"] . '</p>';
}
?>
<!DOCTYPE html>
<html lang="de">
 <head>
  <meta charset="UTF-8">
  <title>Datenbankinhalte mit AES verschlüsseln und auslesen</title>
 </head>
<body>

<form method="post">
<label>Content:<br>
 <textarea name="content" required="required"></textarea></label><br>
 <input type="submit" value="Submit">
</form>

<?=$output;?>

</body>
</html>

Informationen zum verschlüsseln mit AES unter: agile-coding.net

Bausteine  Alle Anzeigen

Eine zufällige Auswahl von Codeschnipseln aus den Bereichen HTML, CSS, PHP, JavaScript und MySQL.

<details> Details

CSS - Tooltip per CSS anzeigen

PHP - Filter für die Checkbox

JavaScript - Interne Anker hervorheben

MySQL - Benutzer ausgeben die min. 25 Tage registriert sind

Rechtsklick verboten!
Einen Rechtsklick mit der Maustaste zu verbieten, zum Beispiel mit Javascript, ist nicht originell, sondern dumm. Mit dem Rechtsklick kann man das Kontextmenü anzeigen lassen, und die Homepage zu den Favoriten hinzufügen, oder die Seite ausdrucken. Den Quelltext kann man nicht mit Javascript schützen, denn es gibt viele Wege und Mittel, um an diesen zu gelangen. Sollte man sensible Daten ins Internet stellen?