moon-****@nag*****
moon-****@nag*****
2006年 4月 30日 (日) 12:57:52 JST
曽我部様 懇切丁寧にソースまで書いてくださり 大変感激しております!! 公開鍵、秘密鍵についても 参考サイトを教えて頂き、本当にありがとうございました!! 自分でも勉強してスキルアップを図りたいと思います。 目的としましては、暗号化をするページから複合化をするページに飛んだときに 安全・確実に、”ある文字列”の受け渡しが出来るようにということを実現したかったのです。 サーバは、同じのサイト(レンタルしている安いサーバですが^^;)の中で行います。 > マニュアルの下のほうにあるUser Contributed Notesに使いかたが > 書いてある場合があります。 > > openssl_public_encrypt()のところに書いてあるものを真似たものですが、 > 以下のようなソースでできるようです。 > 公開鍵、秘密鍵については、 > > http://www.turbolinux.co.jp/knowledge/public/654.html > > が参考になると思います。 > > どのような目的で、 > >> プログラムの中で、ある文字列の暗号化と、 >> 別のプログラムの中で、暗号化された文字列をGETで受け取って複合化する > > このようなことをするのでしょうか。WWWサーバとは別のサーバに > データを送信するのでしょうか? > > > <?php > > // 公開鍵 > define('FILE_PUBLIC_KEY', 'public.pem'); > // 秘密鍵 > define('FILE_PRIVATE_KEY', 'private.pem'); > // パスフレーズ > define('PASSPHRASE', 'XXXXXXXXXX'); > > $data = '秘密のデータ'; > $crypted_text = encrypt($data); > $decrypted = decrypt($crypted_text); > > echo "暗号化前の文字列 = $data\n"; > echo "暗号化された文字列 = $crypted_text\n"; > echo "復号化された文字列 = $decrypted\n"; > > /** > * 公開鍵で暗号化 > * > * @param string $data 暗号化する文字列 > * @return string 暗号をbase64でエンコードした文字列 > */ > function encrypt($data) > { > // 公開鍵取得 > $fp = fopen(FILE_PUBLIC_KEY, 'r'); > $cert = fread($fp, 8192); > fclose($fp); > > // 暗号化 > openssl_public_encrypt($data, $crypted, $cert); > > return base64_encode($crypted); > } > > /** > * 秘密鍵で復号化 > * > * @param string $crypted_text 暗号をbase64でエンコードした文字列 > * @return string 復号化した文字列 > */ > function decrypt($crypted_text) > { > $crypted = base64_decode($crypted_text); > > // 秘密鍵取得 > $fp = fopen(FILE_PRIVATE_KEY, 'r'); > $priv_key = fread($fp, 8192); > fclose($fp); > $res = openssl_get_privatekey($priv_key, PASSPHRASE); > > // 復号化 > openssl_private_decrypt($crypted, $decrypted, $res); > > return $decrypted; > } > > ?> > > -- > sogab****@alles***** > > _______________________________________________ > Tep-j-general mailing list > Tep-j****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/tep-j-general > >