RのWeb制作

Webサービス制作のための技術情報を。

Web制作

PHP5.5から使える暗号化「password_hash」を「password_compact」を使って以前のバージョンで利用する

投稿日:2013年12月15日 更新日:

Passwords, Logins
PHP最高の暗号化法としてPHP5.5から使える「password_hash」があります。

でもそれを、5.5未満のバージョンで使いたい!
特に私が使っている、さくらインターネットのサーバーはPHP 5.4までしか使えない問題があります。orz

書き方はすごく簡単なのに・・・

<?php
$passwordHash = password_hash('secret-password', PASSWORD_DEFAULT);

if (password_verify('bad-password', $passwordHash)) {
    // パスワードが一致した
} else {
    // パスワードが一致しなかった
}

なんと!
「PHP5.3.7以降」なら同名のユーザー関数が使えるようにする「password_compact」があります。

password_compat

使い方はいたって簡単。

  • password_compat」にアクセスして右側にある「Download Zip」でファイルをダウンロード
  • 「lib/password.php」を置きたい場所にセットする
  • require ‘password.php’;でOK!
<?php                     
require 'password.php';

$passwordHash = password_hash('secret-password', PASSWORD_DEFAULT);

if (password_verify('bad-password', $passwordHash)) {
    // パスワードが一致した
} else {
    // パスワードが一致しなかった
}

すごく簡単ですね!

※実際にソフトウェアで使用する場合はライセンス内容を確認してください。著作権内容とライセンス表示が必要です。(2018.09.24追記)

-Web制作

執筆者:


  1. ななしにんげん より:

    コピーライトという文章がありましたけど、大丈夫なんですか?

    • rei より:

      コメントありがとうございます。
      copyright(著作権)については、
      リンクにある通り、
      The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
      =このソフトを使うときは著作権と許諾内容をどこかに書いてね
      という内容です。
      内容に記載していなかったので追記しておきます。ありがとうございます。

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[Kaggle] Titanic 約80% by ランダムフォレスト

実力不足感が否めませんが、Kaggleのチュートリアル的なTitanicにおいてランダムフォレストで正答率約80%を出せたのでコードを載せておきます。 Colaboratory 実施期間:2019/0 …

個人制作ゲームが陥る罠

個人制作のゲームには得てして「人が集まらない問題」があります。 それはなぜでしょうか?分析してみましょう。 まず、市場原理の理解から始めます。 例として、ある商品(iPhone7)をアマゾンに出して売 …

[Meisyo] 練習の不均衡是正

練習に不均衡が生じているので、アップデートで改善します。 ちなみに練習の方法自体を変更しようと思っています。 すぐには実装しません。(案が固まっていないです) 基本的に平均が150より大幅に高い(また …

[Meisyo]今後やっていきたいこと

Meisyoで今年中にやっておきたいこと これさえやればDAU(日ごとのアクティブユーザ)が100人を超えるのでは?と思います。 まずは目的・内容を書いて、理由と考察を書きます。 目的 ユーザがゲーム …

cakePHP in XAMPPの高速化(仮)

そこの貴方! 何故かローカルだけcakePHPがとても遅く困っている貴方! 1つアドバイスがある! アドレスを「localhost/~」から 「127.0.0.1/~」に変えてみな! 私はそれで解決し …