諸先輩方のお力をお借りしたく、質問させていただきます。

PHPで暗号化ロジックを組んでおりましたが、この暗号化部分をCで組みなおし、PHPからコールしたいのですが、具体的な方法がわかりません。

どなたかご教授願えませんでしょうか?よろしくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

PHPのモジュールを自分で書きたい、ということでしょうか?



参考URLでPHPのマニュアルを読めるのですが、そこの「付録」→「PHPの開発」を
読むと良いでしょう。でも、それなりにパワーを使います。

> 暗号化部分をCで組みなおし、PHPからコールしたい

の理由にもよりますが、

・標準の暗号化関数を利用する
・外部コマンドとして実装し、exec() や `` を使う

といった手段では解決しないのでしょうか?

参考URL:http://www.php.net/manual/ja/,http://www.zuien.o …

この回答への補足

補足です。
webサイトを構築してまして、連携サイトとユーザーのIDを共有してまして、連携サイトのサーバー上にも暗号化ロジックを置かないといけなくなり、PHPで作成するとソースを解読される事もあるという事から、Cで暗号化ロジックを組む事になりました。質問内容をもっと詳細にお伝えすべきでした。申し訳ございません。

上記の理由から
CモジュールをPHPからコールしたいのです。
よろしくお願い致します.

補足日時:2001/06/01 15:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QPHPファイルの暗号化(難読化)方法

PHPファイルの暗号化(難読化)方法

PHPファイルを暗号化(難読化)する方法を探しています。

現在は、有料の暗号化ツールを使用せずに、
自作で暗号化(難読化)を実施可能かどうかを検討しております。

ファイル全体を暗号化したいのですが、
ファイル内容は、PHPの開始タグ(<?php)、終了タグ(?>)とHTMLタグが混在していて
それをbase64_encodeなどを使用し、暗号化をかけた場合、
base64_decodeで復号をかけたデータをブラウザにて実行させたい場合は、
どのようにすればよいか困っています。

eval関数は、phpソースコードを実行するため、
PHPの開始タグ、終了タグをのぞいた、phpコードしか実行できません。
echo関数では、phpソースコードもそのまま出力されます。
PHPの開始タグ、終了タグとHTMLタグ混在していても、
ブラウザ上でphpコードの実行とHTMLタグの出力が実行できる方法はないでしょうか。

ネット上で調べてみましたが、
phpコードのみを暗号化して、eval関数で実行するものしか
発見することができませんでした。
そもそも、ファイル全体を上記のような方法で復号化⇒実行することは無理で、
ファイルの中身を解析し、タグの置き換えや、
eval関数が使用可能な処理とそうでない処理とに分けるようなことになるのでしょうか。

暗号の目的は、ファイルが一見、何を行っているのかわからなく、
そのまま処理を使いまわしできないようにしたいためです。
PHPや暗号化に詳しい人が復号化できてしまうことは、理解しております。

何か方法やアドバイス等、ございましたら、
ご回答頂ければと思います。

phpバージョンは、5.2.14です。

以上、よろしくお願いします。

PHPファイルの暗号化(難読化)方法

PHPファイルを暗号化(難読化)する方法を探しています。

現在は、有料の暗号化ツールを使用せずに、
自作で暗号化(難読化)を実施可能かどうかを検討しております。

ファイル全体を暗号化したいのですが、
ファイル内容は、PHPの開始タグ(<?php)、終了タグ(?>)とHTMLタグが混在していて
それをbase64_encodeなどを使用し、暗号化をかけた場合、
base64_decodeで復号をかけたデータをブラウザにて実行させたい場合は、
どのようにすればよいか困っています。

eval関数...続きを読む

Aベストアンサー

私用(趣味)で提供しているのなら、割り切った方が良いのでは?
業務で提供なら、それこそ再利用の禁止を契約書に明記する方向で、金額上乗せ出来るのなら上乗せしておくとか。

私用なら兎も角、業務だと、そもそもソース見る人はプロになると思いますので。
(提供先の担当者が見るとは限りませんから。)

QPHPの可逆暗号化関数について

こんにちは、現在PHP ver5とpostgreSQLでデータベースと連携させて使っているのですが、

テーブル内にデータを入れる際、今は平文のまま登録していますが、
この文字列を、暗号化してデータベースに登録し、取り出したい時に複合化して平文に戻せる関数はどういったものがあるでしょうか。

IDやパスワードといった文字列ではないので不可逆暗号化関数では元のデータベースの平文が分からなくなってしまうと思うのですが、
これを暗号化して登録しておき、抽出する際に元に戻す作業をしたいのです。

これってURLエンコード・デコードとは違いますよね・・・。

長くなりましてすみません。わかる方よろしくお願いします。

Aベストアンサー

これはどうでしょうか
http://jp.php.net/manual/ja/ref.mcrypt.php

QPHP cryptでパスワードを暗号化

お世話になります。

現在、会員登録フォームを作成しており入力されたパスワードをcryptで暗号化しDBに登録させる処理をコーディング中です。

以下の文で暗号化を行おうと試みたのですが、DB内では文字制限が16文字以内となっているため、暗
号化した長い文字列では登録が不可能です。
$setpasswordは入力されたパスワードの文字列が格納されます。
---
$encrypted_password = crypt($setpassword);
---
DBを弄ることができませんので、どうにか暗号化文字列を16文字以内に抑える方法がないものかと思っております。

お力添えよろしくお願い致します。

Aベストアンサー

その文字列制限というのがどのような仕様なのかわからないのでなんともいえませんが
考え方は3つ

・パスワードなんて所詮非可逆なものなので復号化する必要はないので
先頭の16文字だけ保存しておいて合致させればある程度パスワードの用をなします
ただし全く別のパスワード入力がたまたま同じになる可能性はあります

・暗号化されたデータを複数のカラムに振り分ける

・そもそも暗号化しない(セキュリティ的にはありえない)

QPHP内 メールアドレス 暗号化 必要性あり?スパム対策

こんにちは、
PHPファイル内に記述しているメールアドレスは、HTMLファイルに記述しているメールアドレスのようにメールアドレスを自動回収するクラウラーに回収されてしまうのでしょうか?

もしそうであれば、PHPファイル内で下記のように変数として使用するメールアドレスを暗号化したいのですが、
>コード
$mail = "example@example.com"
「example@example.com」を暗号化したいです。
>end コード
$mailは、「mail」関数や「send_mail」関数等に格納してメール送信に使用しするので、今回の場合、メールアドレス(example@example.com)がブラウザーに出力される必要はありません。

PHPファイル内のメールアドレスを暗号化する場合、通常のHTMLを16進数に変更するソフトで暗号化(16進数化)すれば良いのでしょうか?

ちなみに、HTMLメールアドレスを16進数に変更するソフトは、「HTMLエンティティ生成」を現在使用しています。
URL:http://ab.jpn.ph/soft/html_rand.html

もしもHTMLを16進数に変更するソフトでのphpファイル内のメールアドレスの暗号化が不可能な場合、PHP内に記述されたメールアドレス(又はPHPコードを)暗号化するソフトや方法などをご紹介下さい。

よろしくお願いします。
キャサリン

こんにちは、
PHPファイル内に記述しているメールアドレスは、HTMLファイルに記述しているメールアドレスのようにメールアドレスを自動回収するクラウラーに回収されてしまうのでしょうか?

もしそうであれば、PHPファイル内で下記のように変数として使用するメールアドレスを暗号化したいのですが、
>コード
$mail = "example@example.com"
「example@example.com」を暗号化したいです。
>end コード
$mailは、「mail」関数や「send_mail」関数等に格納してメール送信に使用しするので、今回の...続きを読む

Aベストアンサー

失礼ですが、キャサリンさんはHTML(HTTP)の仕組み、およびPHPスクリプトの動作の仕組みをご存知でしょうか? もしご存知でしたら、ご心配しているようなことは原理的に起こりえないことがお分かりになるはずだと思います。

さきほど私の回答にも書きました通り、通常の設定であれば、PHPスクリプトの中身(ソース)に書いてある何か(例えばご質問の場合、メールアドレス)をブラウザやクローラーが見ることは「絶対に」不可能です。

PHPスクリプトが動作する仕組みをごくごく簡単にご説明しますと、
●クライアント(ブラウザやクローラー)がリクエストを出す(たとえば http://example.com/test.phpにアクセスする)

●そのリクエストを受け取ったWebサーバ(Apacheなど)は、該当するスクリプト(この例の場合はtest.php)を実行する。(実際に処理するのはPHPのモジュールですが)

●実行した結果、何らかの出力があれば、Webサーバはそれを(多くの場合HTMLとして)クライアントに返す。この時点で、はじめてクライアントは何かしらの情報をサーバから得て、何かを画面に表示できるわけです。

上記のような仕組みで動作しているため、2番目の段階(スクリプトが実行される段階)でメールアドレスを出力する命令を出していない限り、スクリプトのソース内に書かれているメールアドレスがクライアントに伝わることは絶対にあり得ません。


もし、上記の説明でご納得されず、どうしても「クローラーがPHPスクリプトのソースを読めるのではないか」という疑いが解けないようでしたら、以下のようなスクリプトをサーバに置いて実験されてみてはいかがでしょうか?

<?php
//↓外部に公開してないメアドなら何でもいいので、書いておく
$test = crawler-test@あなたのドメイン名
?>

もしもこれで、このメアド宛てにスパムが来れば、キャサリンさんのご心配しているような事態が実際に起こった、ということになります。
逆にこれでスパムが来なければ、そのご心配は杞憂だった、ということになります。


なお、

>サーバ側のHTMLファイル内のメールアドレスは暗号化されたもので、そのHTMLファイルがブラウザーに出力されたメールアドレス(正しいメールアドレスとして出力されます。)とは異なります。

↑これにつきましてはちょっと意味が分かりかねます・・・。
最初のご質問で、
>今回の場合、メールアドレス(example@example.com)がブラウザーに出力される必要はありません。
とおっしゃっていたのですから、最終的にブラウザに渡されているHTMLにはメアドが含まれていないはずですよね。

失礼ですが、キャサリンさんはHTML(HTTP)の仕組み、およびPHPスクリプトの動作の仕組みをご存知でしょうか? もしご存知でしたら、ご心配しているようなことは原理的に起こりえないことがお分かりになるはずだと思います。

さきほど私の回答にも書きました通り、通常の設定であれば、PHPスクリプトの中身(ソース)に書いてある何か(例えばご質問の場合、メールアドレス)をブラウザやクローラーが見ることは「絶対に」不可能です。

PHPスクリプトが動作する仕組みをごくごく簡単にご説明しますと、
●...続きを読む

Qphpの/の無い可逆暗号化出来る関数はありませんか

/の無い可逆暗号化出来る関数はありませんか

Aベストアンサー

「/の無い」の意味するところがわかりませんが,
McryptやOpenSSLの関数群を使えば,暗号を利用することができます。

refs)
http://php.net/manual/ja/book.mcrypt.php
http://php.net/manual/ja/book.openssl.php

Mcryptを使う場合にmcrypt_list_algorithmsの出力を見ると,現在の標準的な共通鍵暗号方式であるAESが無かったりしますが,
AES以前からの名前であるrijndaelで登録されているためで,実質的にAESを利用することができます。
なお,公開鍵暗号方式を利用する場合は,OpenSSLの関数群を利用することになります……色々面倒ですが。


このカテゴリの人気Q&Aランキング

おすすめ情報