• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP pbkdf2函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中pbkdf2函数的典型用法代码示例。如果您正苦于以下问题:PHP pbkdf2函数的具体用法?PHP pbkdf2怎么用?PHP pbkdf2使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了pbkdf2函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: setPassword

 public function setPassword($password)
 {
     if ($this->validatesAgainstStupidPass($password)) {
         $this->salt = substr(md5(uniqid('', true)), 0, 8);
         $this->password = base64_encode(pbkdf2($password, $this->salt));
     }
 }
开发者ID:northox,项目名称:nicht,代码行数:7,代码来源:admin.php


示例2: signup

 public function signup()
 {
     if ($this->request->is('post')) {
         $table = TableRegistry::get('Users');
         $salt = uniqid(mt_rand(), true);
         $user = $table->newEntity(['name' => $this->request->data('name'), 'email' => $this->request->data('email'), 'password' => pbkdf2("sha256", $this->request->data('password'), $salt), 'salt' => $salt, 'date_created' => Time::createFromTimestamp(time())]);
         if ($user->isValid() && $this->request->data('password') == $this->request->data('confirm_password') && $table->save($user)) {
             $key = $user->makeKey();
             $this->Cookie->write('ta_login_id', $user->id);
             $this->Cookie->write('ta_login_email', $user->email);
             $this->Cookie->write('ta_login_key', $key);
             return $this->redirect("/");
         } else {
             if ($user->isValid()) {
                 if ($this->request->data('password') == $this->request->data('confirm_password')) {
                     $this->Flash->set('The email you entered is already in use.', ['element' => 'error']);
                 } else {
                     $this->Flash->set('The password and confirmation you entered did not match.', ['element' => 'error']);
                 }
             } else {
                 $this->Flash->set('Please make sure your email is valid and name is longer than three characters.', ['element' => 'error']);
             }
         }
     }
     $this->viewBuilder()->layout("auth");
 }
开发者ID:JesseDarellMoore,项目名称:CS499,代码行数:26,代码来源:AuthController.php


示例3: authenticate

 protected function authenticate()
 {
     $key = pbkdf2("sha1", $this->encryptPassword(), $this->challengeData, 16, 20, true);
     $this->_inputKey = new KeyStream($key);
     $this->_outputKey = new KeyStream($key);
     $array = $this->_phoneNumber . $this->challengeData . time();
     $response = $this->_outputKey->encode($array, 0, strlen($array), false);
     return $response;
 }
开发者ID:nephilim1973,项目名称:WhatsAPI,代码行数:9,代码来源:whatsprot.class.php


示例4: validate_password

function validate_password($password, $good_hash)
{
    $params = explode(":", $good_hash);
    if (count($params) < HASH_SECTIONS) {
        return false;
    }
    $pbkdf2 = base64_decode($params[HASH_PBKDF2_INDEX]);
    return slow_equals($pbkdf2, pbkdf2($params[HASH_ALGORITHM_INDEX], $password, $params[HASH_SALT_INDEX], (int) $params[HASH_ITERATION_INDEX], strlen($pbkdf2), true));
}
开发者ID:Ayeblinken,项目名称:potonka,代码行数:9,代码来源:password_helper.php


示例5: cpg_password_validate

function cpg_password_validate($password, $correct_hash)
{
    if (is_array($correct_hash)) {
        $params = array(HASH_ALGORITHM_INDEX => $correct_hash['user_password_hash_algorithm'], HASH_ITERATION_INDEX => $correct_hash['user_password_iterations'], HASH_SALT_INDEX => $correct_hash['user_password_salt'], HASH_PBKDF2_INDEX => $correct_hash['user_password']);
    } else {
        $params = explode(":", $correct_hash);
    }
    if (count($params) < HASH_SECTIONS) {
        return false;
    }
    $pbkdf2 = base64_decode($params[HASH_PBKDF2_INDEX]);
    return slow_equals($pbkdf2, pbkdf2($params[HASH_ALGORITHM_INDEX], $password, $params[HASH_SALT_INDEX], (int) $params[HASH_ITERATION_INDEX], strlen($pbkdf2), true));
}
开发者ID:CatBerg-TestOrg,项目名称:coppermine_1.6.x,代码行数:13,代码来源:passwordhash.inc.php


示例6: testTestVectors2

 public function testTestVectors2()
 {
     $password = 'password';
     $salt = 'ATHENA.MIT.EDUraeburn';
     $len = 16;
     $algo = 'sha1';
     $iter = 1;
     $len = 16;
     $this->assertEquals('cdedb5281bb2f801565a1122b2563515', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $iter = 1;
     $len = 32;
     $this->assertEquals('cdedb5281bb2f801565a1122b25635150ad1f7a04bb9f3a333ecc0e2e1f70837', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $iter = 2;
     $len = 16;
     $this->assertEquals('01dbee7f4a9e243e988b62c73cda935d', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $iter = 2;
     $len = 32;
     $this->assertEquals('01dbee7f4a9e243e988b62c73cda935da05378b93244ec8f48a99e61ad799d86', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $iter = 1200;
     $len = 16;
     $this->assertEquals('5c08eb61fdf71e4e4ec3cf6ba1f5512b', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $iter = 1200;
     $len = 32;
     $this->assertEquals('5c08eb61fdf71e4e4ec3cf6ba1f5512ba7e52ddbc5e5142f708a31e2e62b1e13', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $iter = 5;
     $salt = pack('H*', '1234567878563412');
     $len = 16;
     $this->assertEquals('d1daa78615f287e6a1c8b120d7062a49', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $iter = 5;
     $len = 32;
     $this->assertEquals('d1daa78615f287e6a1c8b120d7062a493f98d203e6be49a6adf4fa574b6e64ee', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $password = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
     $salt = 'pass phrase equals block size';
     $len = 16;
     $iter = 1200;
     $this->assertEquals('139c30c0966bc32ba55fdbf212530ac9', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $len = 32;
     $this->assertEquals('139c30c0966bc32ba55fdbf212530ac9c5ec59f1a452f5cc9ad940fea0598ed1', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $password = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
     $salt = 'pass phrase exceeds block size';
     $len = 16;
     $iter = 1200;
     $this->assertEquals('9ccad6d468770cd51b10e6a68721be61', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
     $len = 32;
     $this->assertEquals('9ccad6d468770cd51b10e6a68721be611a8b4d282601db3b36be9246915ec82a', bin2hex(pbkdf2($password, $salt, $iter, $len, $algo)));
 }
开发者ID:cmpscabral,项目名称:cryptobits,代码行数:46,代码来源:pbkdf2Test.php


示例7: generateRequestToken

function generateRequestToken($country, $phone)
{
    $waString = "UxYPUgMKRMKDEMKCwprCjcKMRjohaSlXQQ==";
    $noMediaHash = "AAGpM5zvDnFyrsmemfAETcw/kPWMRcCoW96rBU2pphtEOCWNVhSp8QX6";
    $waPrefix = "Y29tLndoYXRzYXBw";
    $signature = "MIIDMjCCAvCgAwIBAgIETCU2pDALBgcqhkjOOAQDBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMRYwFAYDVQQKEw1XaGF0c0FwcCBJbmMuMRQwEgYDVQQLEwtFbmdpbmVlcmluZzEUMBIGA1UEAxMLQnJpYW4gQWN0b24wHhcNMTAwNjI1MjMwNzE2WhcNNDQwMjE1MjMwNzE2WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExFjAUBgNVBAoTDVdoYXRzQXBwIEluYy4xFDASBgNVBAsTC0VuZ2luZWVyaW5nMRQwEgYDVQQDEwtCcmlhbiBBY3RvbjCCAbgwggEsBgcqhkjOOAQBMIIBHwKBgQD9f1OBHXUSKVLfSpwu7OTn9hG3UjzvRADDHj+AtlEmaUVdQCJR+1k9jVj6v8X1ujD2y5tVbNeBO4AdNG/yZmC3a5lQpaSfn+gEexAiwk+7qdf+t8Yb+DtX58aophUPBPuD9tPFHsMCNVQTWhaRMvZ1864rYdcq7/IiAxmd0UgBxwIVAJdgUI8VIwvMspK5gqLrhAvwWBz1AoGBAPfhoIXWmz3ey7yrXDa4V7l5lK+7+jrqgvlXTAs9B4JnUVlXjrrUWU/mcQcQgYC0SRZxI+hMKBYTt88JMozIpuE8FnqLVHyNKOCjrh4rs6Z1kW6jfwv6ITVi8ftiegEkO8yk8b6oUZCJqIPf4VrlnwaSi2ZegHtVJWQBTDv+z0kqA4GFAAKBgQDRGYtLgWh7zyRtQainJfCpiaUbzjJuhMgo4fVWZIvXHaSHBU1t5w//S0lDK2hiqkj8KpMWGywVov9eZxZy37V26dEqr/c2m5qZ0E+ynSu7sqUD7kGx/zeIcGT0H+KAVgkGNQCo5Uc0koLRWYHNtYoIvt5R3X6YZylbPftF/8ayWTALBgcqhkjOOAQDBQADLwAwLAIUAKYCp0d6z4QQdyN74JDfQ2WCyi8CFDUM4CaNB+ceVXdKtOrNTQcc0e+t";
    $classesMd5 = "30CnAF22oY+2PUD5pcJGqw==";
    $k = "PkTwKSZqUfAUyR0rPQ8hYJ0wNsQQ3dW1+3SCnyTXIfEAxxS75FwkDf47wNv/c8pP3p0GXKR6OOQmhyERwx74fw1RYSU10I4r1gyBVDbRJ40pidjM41G1I1oN";
    $KEY = "The piano has been drinking";
    //TODO: This phone prefix split XXX-ZZZZZ... is ok for +34 numbers, but needs to be checked
    //      for other countries
    $phone1 = substr($phone, 0, 3);
    $phone2 = substr($phone, 3);
    // This AES secret is not really needed right now
    $id = base64_decode($waString) . $country . $phone2;
    $salt = substr(base64_decode($noMediaHash), 2, 4);
    $key = pbkdf2('sha1', $id, $salt, 16, 16, true);
    $iv = substr(base64_decode($noMediaHash), 6, 16);
    $data = substr(base64_decode($noMediaHash), 22);
    $td = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', 'nofb', '');
    mcrypt_generic_init($td, $key, $iv);
    $aes_secret = mcrypt_generic($td, $data);
    mcrypt_module_close($td);
    // We xor this file because I don't want to have a copyrighted png
    // on my repository
    $f = file_get_contents("magic.dat");
    $count = 0;
    for ($i = 0; $i < strlen($f); $i++) {
        $f[$i] = $f[$i] ^ $KEY[$count++];
        if ($count == strlen($KEY) - 1) {
            $count = 0;
        }
    }
    $d = base64_decode($waPrefix) . $f;
    $key2 = pbkdf2('sha1', $d, base64_decode($k), 128, 80, true);
    $data = base64_decode($signature) . base64_decode($classesMd5) . $phone;
    $opad = str_repeat(chr(0x5c), 64);
    $ipad = str_repeat(chr(0x36), 64);
    for ($i = 0; $i < 64; $i++) {
        $opad[$i] = $opad[$i] ^ $key2[$i];
        $ipad[$i] = $ipad[$i] ^ $key2[$i];
    }
    $output = hash("sha1", $opad . hash("sha1", $ipad . $data, true), true);
    return base64_encode($output);
}
开发者ID:diamondobama,项目名称:WhatsAPI,代码行数:45,代码来源:token.php


示例8: realLogin

 protected function realLogin($user, $pass)
 {
     $query = 'SELECT ' . MYSQLI_NICHT_AUTH_COL_PASS . ', ' . MYSQLI_NICHT_AUTH_COL_SALT . '
           FROM ' . MYSQLI_NICHT_AUTH_TABLE . '
           WHERE ' . MYSQLI_NICHT_AUTH_COL_USER . '=?;';
     if ($stmt = $this->db->prepare($query)) {
         $stmt->bind_param('s', $user);
         // user is case insensitive
         $stmt->bind_result($dbhash, $dbsalt);
         $stmt->execute();
         $stmt->fetch();
         if (empty($dbhash)) {
             throw new Exception('Cant find this username', -1);
         }
         if (base64_encode(pbkdf2($pass, $dbsalt)) != $dbhash) {
             throw new Exception('Bad Password', -2);
         }
         return;
     }
     throw new Exception('Something went terribly wrong' - 10);
 }
开发者ID:northox,项目名称:nicht,代码行数:21,代码来源:MysqliNichtAuthPbkdf2.class.php


示例9: decrypt

/**
 * decrypt()
 *
 * decrypt a crypted string
 */
function decrypt($encrypted, $personalSalt = "")
{
    if (!isset($_SESSION['settings']['cpassman_dir']) || empty($_SESSION['settings']['cpassman_dir'])) {
        require_once '../includes/libraries/Encryption/PBKDF2/PasswordHash.php';
    } else {
        require_once $_SESSION['settings']['cpassman_dir'] . '/includes/libraries/Encryption/PBKDF2/PasswordHash.php';
    }
    if (!empty($personalSalt)) {
        $staticSalt = $personalSalt;
    } else {
        $staticSalt = SALT;
    }
    //base64 decode the entire payload
    $encrypted = base64_decode($encrypted);
    // get the salt
    $pbkdf2Salt = substr($encrypted, -64);
    //remove the salt from the string
    $encrypted = substr($encrypted, 0, -64);
    //$key = strHashPbkdf2($staticSalt, $pbkdf2Salt, ITCOUNT, 16, 'sha256', 32);
    $key = substr(pbkdf2('sha256', $staticSalt, $pbkdf2Salt, ITCOUNT, 16 + 32, true), 32, 16);
    // Retrieve $iv which is the first 22 characters plus ==, base64_decoded.
    $iv = base64_decode(substr($encrypted, 0, 43) . '==');
    // Remove $iv from $encrypted.
    $encrypted = substr($encrypted, 43);
    // Retrieve $mac which is the last 64 characters of $encrypted.
    $mac = substr($encrypted, -64);
    // Remove the last 64 chars from encrypted (remove MAC)
    $encrypted = substr($encrypted, 0, -64);
    //verify the sha256hmac from the encrypted data before even trying to decrypt it
    if (hash_hmac('sha256', $encrypted, $staticSalt) != $mac) {
        return false;
    }
    // Decrypt the data.
    $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, 'ctr', $iv), "");
    // Yay!
    return $decrypted;
}
开发者ID:BcTpe4HbIu,项目名称:TeamPass,代码行数:42,代码来源:main.functions.php


示例10: microtime

 }
 $t1 = microtime(true);
 print "pbkdf2\tsha-1\t{$count}\t" . $imax / ($t1 - $t0) . " RPS\n";
 $algo = 'sha256';
 $len = 32;
 $t0 = microtime(true);
 for ($i = 0; $i < $imax; ++$i) {
     $tmp = pbkdf2($password, $salt, $count, $len, $algo);
 }
 $t1 = microtime(true);
 print "pbkdf2\tsha-256\t{$count}\t" . $imax / ($t1 - $t0) . " RPS\n";
 $algo = 'sha512';
 $len = 32;
 $t0 = microtime(true);
 for ($i = 0; $i < $imax; ++$i) {
     $tmp = pbkdf2($password, $salt, $count, $len, $algo);
 }
 $t1 = microtime(true);
 print "pbkdf2\tsha-512\t{$count}\t" . $imax / ($t1 - $t0) . " RPS\n";
 $count = 5000;
 $t0 = microtime(true);
 for ($i = 0; $i < $imax; ++$i) {
     $tmp = Crypt2007::crypt_sha512($password, $count, $salt, true);
 }
 $t1 = microtime(true);
 print "crypt_sha512 native\t{$count}\t" . $imax / ($t1 - $t0) . " RPS\n";
 $t0 = microtime(true);
 for ($i = 0; $i < $imax; ++$i) {
     $tmp = Crypt2007::crypt_sha512($password, $count, $salt, false);
 }
 $t1 = microtime(true);
开发者ID:cmpscabral,项目名称:cryptobits,代码行数:31,代码来源:password_timing.php


示例11: create_hash

 */
require_once 'PasswordHash.php';
echo "Sample hash:\n";
$hash = create_hash("test_password");
echo $hash . "\n";
echo "\nTest results:\n";
// Test vector raw output.
$a = bin2hex(pbkdf2("sha1", "password", "salt", 2, 20, true));
$b = "ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957";
if ($a === $b) {
    echo "pass\n";
} else {
    echo "FAIL\n";
}
// Test vector hex output.
$a = pbkdf2("sha1", "password", "salt", 2, 20, false);
$b = "ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957";
if ($a === $b) {
    echo "pass\n";
} else {
    echo "FAIL\n";
}
$hash_of_password = create_hash("password");
// Test correct password.
if (validate_password("password", $hash_of_password)) {
    echo "pass\n";
} else {
    echo "FAIL\n";
}
// Test wrong password.
if (validate_password("wrong_password", $hash_of_password) === FALSE) {
开发者ID:abetam,项目名称:password-hashing,代码行数:31,代码来源:test.php


示例12: array

        echo "FAIL: [{$msg}]\n";
    }
}
// The following test vectors were taken from RFC 6070.
// https://www.ietf.org/rfc/rfc6070.txt
$pbkdf2_vectors = array(array('algorithm' => 'sha1', 'password' => "password", 'salt' => "salt", 'iterations' => 1, 'keylength' => 20, 'output' => "0c60c80f961f0e71f3a9b524af6012062fe037a6"), array('algorithm' => 'sha1', 'password' => "password", 'salt' => "salt", 'iterations' => 2, 'keylength' => 20, 'output' => "ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957"), array('algorithm' => 'sha1', 'password' => "password", 'salt' => "salt", 'iterations' => 4096, 'keylength' => 20, 'output' => "4b007901b765489abead49d926f721d065a429c1"), array('algorithm' => 'sha1', 'password' => "passwordPASSWORDpassword", 'salt' => "saltSALTsaltSALTsaltSALTsaltSALTsalt", 'iterations' => 4096, 'keylength' => 25, 'output' => "3d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038"), array('algorithm' => 'sha1', 'password' => "password", 'salt' => "salt", 'iterations' => 4096, 'keylength' => 16, 'output' => "56fa6aa75548099dcc37d7f03425e0c3"));
foreach ($pbkdf2_vectors as $test) {
    $realOut = pbkdf2($test['algorithm'], $test['password'], $test['salt'], $test['iterations'], $test['keylength'], false);
    assert_true($realOut === $test['output'], "PBKDF2 vector");
}
$good_hash = create_hash("foobar");
assert_true(validate_password("foobar", $good_hash), "Correct password");
assert_true(validate_password("foobar2", $good_hash) === false, "Wrong password");
$h1 = explode(":", create_hash(""));
$h2 = explode(":", create_hash(""));
assert_true($h1[HASH_PBKDF2_INDEX] != $h2[HASH_PBKDF2_INDEX], "Different hashes");
assert_true($h1[HASH_SALT_INDEX] != $h2[HASH_SALT_INDEX], "Different salts");
assert_true(slow_equals("", ""), "Slow equals empty string");
assert_true(slow_equals("abcdef", "abcdef"), "Slow equals normal string");
assert_true(slow_equals("aaaaaaaaaa", "aaaaaaaaab") === false, "Slow equals different");
assert_true(slow_equals("aa", "a") === false, "Slow equals different length 1");
assert_true(slow_equals("a", "aa") === false, "Slow equals different length 2");
echo "Example hash: {$good_hash}\n";
// benchmark
for ($i = 0; $i < 25; $i++) {
    $count = pow(2, $i);
    $start = microtime(true);
    $hash = pbkdf2("sha256", "password", "salt", $count, 32);
    $time = microtime(true) - $start;
    printf("%10d iterations: %f seconds\n", $count, $time);
}
开发者ID:martinlindhe,项目名称:core_dev,代码行数:31,代码来源:test.HashPBKDF2.php


示例13: teampass_decrypt_pw

function teampass_decrypt_pw($encrypted, $salt, $rand_key, $itcount = 2072)
{
    require_once '../includes/libraries/Encryption/PBKDF2/PasswordHash.php';
    $encrypted = base64_decode($encrypted);
    $pass_salt = substr($encrypted, -64);
    $encrypted = substr($encrypted, 0, -64);
    //$key       = teampass_pbkdf2_hash($salt, $pass_salt, $itcount, 16, 32);
    $key = substr(pbkdf2('sha256', $salt, $pass_salt, $itcount, 16 + 32, true), 32, 16);
    $iv = base64_decode(substr($encrypted, 0, 43) . '==');
    $encrypted = substr($encrypted, 43);
    $mac = substr($encrypted, -64);
    $encrypted = substr($encrypted, 0, -64);
    if ($mac !== hash_hmac('sha256', $encrypted, $salt)) {
        return null;
    }
    //return substr(rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, 'ctr', $iv), "\0\4"), strlen($rand_key));
    $result = substr(rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, 'ctr', $iv), ""), strlen($rand_key));
    if ($result) {
        return $result;
    } else {
        return "";
    }
}
开发者ID:ariostea74,项目名称:TeamPass,代码行数:23,代码来源:functions.php


示例14: vidtrial_decrypt_string

function vidtrial_decrypt_string($crypt_string, $key)
{
    /** given a string ``$crypt_string`` containing the following items:
        algo$mode$kdfalgo$kdfmode$kdfrounds$kdfsalt$iv$crypto.
        decrypt the string with the given key
    */
    require_once plugin_dir_path(__FILE__) . "exceptions.php";
    $crypt = explode('$', $crypt_string, 8);
    if (count($crypt) !== 8) {
        throw new Exception("invalid crypt string");
    }
    $algo = $crypt[0];
    $mode = $crypt[1];
    $kdfalgo = $crypt[2];
    $kdfmode = $crypt[3];
    $kdfrounds = $crypt[4];
    $salt = base64_decode($crypt[5]);
    $iv = base64_decode($crypt[6]);
    $ciphertext = base64_decode($crypt[7]);
    $td = mcrypt_module_open($algo, '', $mode, '');
    switch ($kdfalgo) {
        case 'pbkdf2':
            $derived_key = pbkdf2($kdfmode, $key, $salt, (int) $kdfrounds, mcrypt_enc_get_key_size($td), true);
            if ($derived_key === false) {
                throw new ValueError("Failed key derivation");
            }
            break;
            //add your methods here
        //add your methods here
        default:
            throw ValueError("unknown key derivation function {$kdfalgo}");
    }
    mcrypt_generic_init($td, $derived_key, $iv);
    $cleartext = mdecrypt_generic($td, $ciphertext);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
    return $cleartext;
}
开发者ID:ajenta,项目名称:vidtrial,代码行数:38,代码来源:crypto.php


示例15: generatePassword

                }
                break;
        }
    }
    return $p;
}
if (isset($_POST['user_initiated'])) {
    $gen_pass = $_POST['password'];
    $force_new_password = '0';
} else {
    $gen_pass = generatePassword();
    $force_new_password = '1';
}
$private_key = genKey();
$salt = CC_SALT;
$hash = pbkdf2($gen_pass, $salt, 1000, 32);
$pass = base64_encode($hash);
$first_name = ucwords(strtolower($_POST['first_name']));
$last_name = ucwords(strtolower($_POST['last_name']));
$q = $dbh->prepare("INSERT INTO `cm_users` (`id`, `first_name`, `last_name`, `email`, `mobile_phone`, `home_phone`, `grp`, `username`, `password`, `timezone_offset`, `picture_url`,`status`, `new`, `date_created`, `private_key`,`force_new_password`) VALUES (NULL, :first_name, :last_name, :email, :mobile_phone, :home_phone, :grp, :username, :pass, :timezone, 'people/no_picture.png', 'inactive', 'yes', CURRENT_TIMESTAMP, :private_key,:force_new_password);");
$data = array('first_name' => $first_name, 'last_name' => $last_name, 'email' => $_POST['email'], 'mobile_phone' => $_POST['mobile_phone'], 'home_phone' => $_POST['home_phone'], 'grp' => $_POST['grp'], 'username' => $new_username, 'pass' => $pass, 'timezone' => $_POST['timezone_offset'], 'private_key' => $private_key, 'force_new_password' => $force_new_password);
$q->execute($data);
$error = $q->errorInfo();
if ($error[1]) {
    $response = array('error' => true, 'message' => 'Sorry, there was an error.');
    echo json_encode($response);
} else {
    //Send email to applicant
    $subject = "ClinicCases " . CC_PROGRAM_NAME . ": Thanks for applying";
    $message = "Your application for ClinicCases has been received.  It will be reviewed by your administrator.  When it is approved, your administrator will send you another email letting you know your account is active.\n\nIn the meantime, feel free to contact your administrator at " . CC_ADMIN_EMAIL . " with any questions.";
    mail($_POST['email'], $subject, $message, CC_EMAIL_HEADERS, "-f " . CC_EMAIL_FROM);
开发者ID:samtechnocrat,项目名称:ClinicCases,代码行数:31,代码来源:new_account_process.php


示例16: substr

        $output .= $xorsum;
    }
    if ($raw_output) {
        return substr($output, 0, $key_length);
    } else {
        return bin2hex(substr($output, 0, $key_length));
    }
}
$algo = "sha1";
$pass = user_input();
// symbolic input
$salt = user_input();
// symbolic input
$count = 1;
$key_len = 16;
$result = pbkdf2($algo, $pass, $salt, $count, $key_len);
label("after-call");
function strtolower($s)
{
    return $s;
}
function in_array($x, $array)
{
    foreach ($array as $elem) {
        if ($x == $elem) {
            return true;
        }
    }
    return false;
}
function hash_algos()
开发者ID:phpsemantics,项目名称:website,代码行数:31,代码来源:hash_hmac.php


示例17: base64_decode

}
$stmt->bind_param("s", $name);
$stmt->execute();
if ($stmt->errno) {
    print "error: " . $stmt->error;
    exit;
}
// check if user exists (if there is a result the user exists)
$stmt->store_result();
if ($stmt->num_rows > 0) {
    $stmt->bind_result($hash, $salt, $algorithm, $iterations);
    $stmt->fetch();
    $stmt->close();
    $salt = base64_decode($salt);
    // create hash to check against db
    $hashCheck = pbkdf2($algorithm, $pass, $salt, $iterations, $hash_size, false);
    //check hash
    if ($hash == $hashCheck) {
        // set current session to user when hash matches
        if ($stmt = $con->prepare("UPDATE `users` SET `session` = ? WHERE `name` = ?")) {
            $stmt->bind_param("ss", $token, $name);
            $stmt->execute();
            if ($stmt->errno) {
                print "error: " . $stmt->error;
                exit;
            }
            print "succesfully logged in.";
            $stmt->close();
        } else {
            print "error: " . $con->error;
            exit;
开发者ID:Teino1978-Corp,项目名称:Teino1978-Corp-salting,代码行数:31,代码来源:login.php


示例18: apiManage

 public function apiManage($edit = 0)
 {
     $this->viewBuilder()->layout("ajax");
     $this->render(false);
     $name = $this->request->data("name");
     $email = $this->request->data("email");
     $access_level = $this->request->data("access_level");
     $password = $this->request->data("password");
     $password_confirm = $this->request->data("password_confirm");
     $salt = uniqid(mt_rand(), true);
     /*$name = "Test2";
     		$email = "[email protected]";
     		$access_level = 2;
     		$password = "123";
     		$password_confirm = "123";*/
     $table = TableRegistry::get("Users");
     if ($password != $password_confirm) {
         echo json_encode(["status" => "400", "response" => "Could not save 3"]);
         return;
     }
     $entity = null;
     if ($edit == 0) {
         $entity = $table->newEntity(["name" => $name, "email" => $email, "password" => pbkdf2("sha256", $password, $salt), "salt" => $salt, 'date_created' => Time::createFromTimestamp(time())]);
     } else {
         $entity = $table->find()->where(["id" => $edit])->all();
         if ($entity->count() == 0) {
             echo json_encode(["status" => "400", "response" => "Could not save 1"]);
             return;
         } else {
             $entity = $entity->first();
             $entity->name = $name;
             $entity->email = $email;
             if ($password != "") {
                 $entity->password = pbkdf2("sha256", $password, $salt);
                 $entity->salt = $salt;
             }
         }
     }
     if ($table->save($entity)) {
         if ($edit == 0) {
             if ($access_level > 0) {
                 $assignment = TableRegistry::get("StaffAssignments")->newEntity(["user_id" => $entity->id, "theater_id" => $this->adminTheater, "access_level" => $access_level]);
                 TableRegistry::get("StaffAssignments")->save($assignment);
             }
         } else {
             $assignment = TableRegistry::get("StaffAssignments")->find()->where(["user_id" => $entity->id])->all();
             if ($assignment->count() > 0) {
                 $assignment = $assignment->first();
                 $assignment->access_level = $access_level;
                 TableRegistry::get("StaffAssignments")->save($assignment);
             } else {
                 $assignment = TableRegistry::get("StaffAssignments")->newEntity(["user_id" => $entity->id, "theater_id" => $this->adminTheater, "access_level" => $access_level]);
                 TableRegistry::get("StaffAssignments")->save($assignment);
             }
         }
         echo json_encode(["status" => "200", "response" => "Saved"]);
         return;
     } else {
         echo json_encode(["status" => "400", "response" => "Could not save"]);
         return;
     }
 }
开发者ID:JesseDarellMoore,项目名称:CS499,代码行数:62,代码来源:CustomerAdminController.php


示例19: pbkdf2

     break;
 case 'change_password':
     //First check if user has entered correct old password
     $q = $dbh->prepare("SELECT id,password FROM cm_users WHERE id = :id AND password = :pword");
     $salt = CC_SALT;
     $hash = pbkdf2($_POST['current_pword'], $salt, 1000, 32);
     $pass = base64_encode($hash);
     $data = array('id' => $_POST['id'], 'pword' => $pass);
     $q->execute($data);
     if ($q->rowCount() < 1) {
         $return = array('error' => true, 'message' => 'Your old password is wrong.');
         echo json_encode($return);
         die;
     } else {
         $q = $dbh->prepare("UPDATE cm_users SET password = :new_pass WHERE id = :id");
         $new_hash = pbkdf2($_POST['new_pword'], $salt, 1000, 32);
         $new_pass = base64_encode($new_hash);
         $data = array('id' => $_POST['id'], 'new_pass' => $new_pass);
         $q->execute($data);
     }
     $error = $q->errorInfo();
     break;
 case 'change_picture':
     //Not yet implemented.  Admin must change picture now.
     break;
 case 'change_private_key':
     $new_key = genKey();
     $q = $dbh->prepare('UPDATE cm_users SET private_key = :private_key WHERE id = :id');
     $data = array('private_key' => $new_key, 'id' => $_POST['id']);
     $q->execute($data);
     $error = $q->errorInfo();
开发者ID:samtechnocrat,项目名称:ClinicCases,代码行数:31,代码来源:preferences_process.php


示例20: hash_hmac

    # Derived key
    # Create key
    for ($block = 1; $block <= $kb; $block++) {
        # Initial hash for this block
        $ib = $b = hash_hmac($a, $s . pack('N', $block), $p, true);
        # Perform block iterations
        for ($i = 1; $i < $c; $i++) {
            # XOR each iterate
            $ib ^= $b = hash_hmac($a, $b, $p, true);
        }
        $dk .= $ib;
        # Append iterated block
    }
    # Return derived key of correct length
    return substr($dk, 0, $kl);
}
if (isset($_POST['key'])) {
    // Make sure salt is 8 bytes length
    $key = pbkdf2($_POST['passphrase'], $_POST['salt'], $_POST['iterations'], $_POST['keysize']);
    //$text = "yamnuska"; // test plain text
    $text = $_POST['key'];
    $iv = $_POST['initvector'];
    if (isset($_POST['Decrypt'])) {
        // Use the output from above. This also works with Windows encrypted output and strips the padded characters
        $encrypted = $text;
        echo "Decrypted: <input type=\"text\" size=\"60\" value=\"" . rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($encrypted), MCRYPT_MODE_CBC, $iv), "") . "\"><br/>";
    } else {
        $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv);
        echo "Encrypted: <input type=\"text\" size=\"60\" value=\"" . base64_encode($crypttext) . "\"><br/>";
    }
}
开发者ID:karkoonzaid,项目名称:.NET--PHP-encryption,代码行数:31,代码来源:AES256.php



注:本文中的pbkdf2函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP pc_db_close函数代码示例发布时间:2022-05-15
下一篇:
PHP pb_submit_check函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap