初めに
自分でアウトプットして記憶にも記録にも残すために書いておきます。
OpenSSLの利用の仕方に戸惑いましたが、
参考URLの一番上のサイトを見て理解を深めました。
送信側
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php
// 読み取り専用でsample.csvを開きます。
$f = fopen("sample.csv", "r");
// test.csvの行を1行ずつ読み込みます。
while($data = fgetcsv($f)){
// 1行分の要素すべてを文字列として結合しても空ではない、つまり空行でなければ出力します。
if(implode($data) != null){
$method = "AES-256-CBC";
$key = "sample";
// $numberを暗号化する
$num = bin2hex( openssl_encrypt( $data[0] , $method, $key, 0, $iv ) );
// $adressを暗号化する
$adr = bin2hex( openssl_encrypt( $data[5] , $method, $key, 0, $iv ) );
?>
<a href="detail.php?name=<?php echo("$num"); ?>&adr=<?php echo("$adr"); ?> ">詳細ページへ</a>
</body>
</html>
受信側
<?php
// URLからnumberデータを取得
if(isset($_GET['name'])) { $name = $_GET['name']; }
// URLからaddressデータを取得
if(isset($_GET['adr'])) { $adr = $_GET['adr']; }
// URLのパラメータを復号化する
$method = "AES-256-CBC";
$key = "sample";
// $numberを復号化する
$dec_num = openssl_decrypt( hex2bin( $name ), $method, $key, 0, $iv );
// $adressを復号化する
$dec_adr = openssl_decrypt( hex2bin( $adr ), $method, $key, 0, $iv );
?>
<p><?php echo("$data[2]"); ?></p>
参考URL
PHPのOpenSSLで暗号化して復号する
https://norando.net/php_openssl/
PHPで文字列を暗号化
https://qiita.com/horikeso/items/b8d143fca301d6cf4511
【PHP】URLにプラス(+)文字がある場合の対応方法
https://online-world.jp/blog/contents/?id=13