codeigniterの暗号化クラスを使用する暗号化パスワードは、2つの異なるマシンで同じ暗号化パスワードを生成しますか?たとえば、私は一部のホストとオンラインでプロダクションサイトを持っており、私は自分のコンピュータにローカルインストールを持っています。しかし、私はデータベースを復元するときにパスワードが一致しません。プロダクションサーバーとローカルサーバーでのコード署名の暗号化
答えて
コードが表示されていないと、問題の原因を突き止めることができません(これがまだ解答していない理由です)。ただし、同じ暗号化キーを使用している限り、同じ方法で文字列を暗号化している場合は、同じ暗号化キーを使用する必要があります。 CIの暗号化クラス(see here)では、あなたはこのようなconfig.php
ファイルでこれを行うことができます..私はこれが古い質問ですけど
$config['encryption_key'] = "YOUR KEY";
が、私は同じ問題を抱えていたし、それを考え出し
CodeIgniterの暗号化ライブラリは、さまざまな環境で動作が異なります。具体的には、PHP mcryptエクステンションがインストールされているかどうかをライブラリが自動的に検出し、そうでない場合とは全く異なるアルゴリズムを使用します。
あなたのサーバにはmcryptがインストールされていて、開発環境にはインストールされていない可能性があります。
これを解決するには2通りの方法があります。常にmcryptのを使用し、それがインストールされていない場合は大声で失敗:
オプション1:いずれかの方法で、あなたはMY_Encrypt.phpクラスを作成することにより、組み込みの暗号化クラスを拡張する必要があり
class MY_Encrypt extends CI_Encrypt
{
public function __construct()
{
if (! function_exists('mcrypt_encrypt')) {
throw new Exception("Encryption requires mcrypt PHP extension!");
}
parent::__construct();
}
}
オプション2:それがインストールされている場合でも、mcryptのは絶対に使用しないでください:
class MY_Encrypt extends CI_Encrypt
{
public function __construct()
{
parent::__construct();
//Pretend Mcrypt doesn't exist no matter what
$this->_mcrypt_exists = FALSE;
}
}
これは、CodeIgniterの暗号化は、すべての環境で同じように動作するようになります。
IMHOでは、暗号化ライブラリはではありません。は、環境に基づいて暗号化に使用されるアルゴリズムを自動的に変更する必要があります。オートマティック暗号化アルゴリズムの変更はひどい考えです。
私はもう少し投票します。私はいくつかのゴミデータで終わってしまい、それを理解できませんでした。 m_crypt関数が無効になりました。今私は古いデータをm_cryptで解読し、新しい方法で暗号化する必要があります。ただのばかな愚か! – machineaddict
オプション2は私にとってうまくいきます。 –
私はこの答えを探していたが、私はそれは多分漠然とし、解決策を考え出したが、初心者のための十分なシンプルでなければなりません:
は libmcryptのをインストールし、のphp-mcryptのをインストールします。
php.iniファイルを編集します。いくつかのディストリビューションは異なるかもしれませんが、私の所在地は以下の通りです:/etc/php/php.ini
すべての拡張子がどこにあるかを見つけて、コメントを追加するか、php.iniファイルに次の行を追加してください。
拡張子= mcrypt.so
Apacheを再起動または任意のウェブサーバあなたが使用しています。
これはconfig.phpファイルで使用します。それはあなたに異なるキーを与えますが、結果は同じになります:
$config['encryption_key'] = "YOUR KEY";
- 1. メールの署名と暗号化
- 2. 署名と暗号化のポリシー
- 3. 署名者ベースの暗号化
- 4. ファイルの署名と暗号化のためのクライアント/サーバーソリューション
- 5. x509証明書と暗号化を使用したデジタル署名
- 6. 基本暗号の理解:RSA署名
- 7. Javascriptのコードの暗号化
- 8. base64暗号化コード
- 9. シーザー暗号シンプルな暗号化コード
- 10. Ruby on RailsとJavaScriptで暗号化された署名付きヘッダーの一致
- 11. SAMLの署名と暗号化、SSLの使用をお勧めしますか?
- 12. WCF with basicHttpBinding、暗号化、署名、およびusernameトークンHTTP経由
- 13. アプリのコードとデータを暗号化/復号化するPhonegap
- 14. pvk.keyとBouncyCastle暗号apisで生成された署名の検証と復号化
- 15. 暗号化と復号化
- 16. RSA暗号化解除コード
- 17. グループ署名方式と公開鍵暗号の相違
- 18. 良い暗号化/暗号化の本
- 19. ASP.net ViewStateの暗号化と復号化
- 20. SQL Serverの暗号化と復号化
- 21. ファイルの暗号化と復号化
- 22. 暗号化と復号化 - Javaの
- 23. DataTableオブジェクトの暗号化と復号化
- 24. ファイルの復号化と暗号化
- 25. 暗号化のためのC#コード
- 26. C#とPHPの暗号化/暗号化の問題(keysize)
- 27. AndroidからPHPへの暗号化コード
- 28. iphoneでのRSA暗号化/復号化
- 29. Sharepointと暗号化
- 30. アイデンティティベースの暗号化とオープンソース
ええ、私はこれらの設定はサーバーと開発マシンで同じです。しかし、彼らはアプリにログインしたり、ログアウトしたりすることはできません。コードはサーバーと開発マシンで同じです。 – Karl