当前位置: 首页>>代码示例>>PHP>>正文


PHP MWCryptRand::generateHex方法代码示例

本文整理汇总了PHP中MWCryptRand::generateHex方法的典型用法代码示例。如果您正苦于以下问题:PHP MWCryptRand::generateHex方法的具体用法?PHP MWCryptRand::generateHex怎么用?PHP MWCryptRand::generateHex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MWCryptRand的用法示例。


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

示例1: execute

 public function execute()
 {
     $user = $this->getUser();
     $params = $this->extractRequestParams();
     // If we're in JSON callback mode, no tokens can be obtained
     if ($this->lacksSameOriginSecurity()) {
         $this->dieUsage('Cannot obtain a centralauthtoken when using a callback', 'hascallback');
     }
     if ($user->isAnon()) {
         $this->dieUsage('Anonymous users cannot obtain a centralauthtoken', 'notloggedin');
     }
     if (CentralAuthHooks::hasApiToken()) {
         $this->dieUsage('Cannot obtain a centralauthtoken when using centralauthtoken', 'norecursion');
     }
     $centralUser = CentralAuthUser::getInstance($user);
     if (!$centralUser->exists() || !$centralUser->isAttached()) {
         $this->dieUsage('Cannot obtain a centralauthtoken without an attached global account', 'notattached');
     }
     $data = array('userName' => $user->getName(), 'token' => $centralUser->getAuthToken());
     global $wgMemc;
     $loginToken = MWCryptRand::generateHex(32) . dechex($centralUser->getId());
     $key = CentralAuthUser::memcKey('api-token', $loginToken);
     $wgMemc->add($key, $data, 60);
     $this->getResult()->addValue(null, $this->getModuleName(), array('centralauthtoken' => $loginToken));
 }
开发者ID:NDKilla,项目名称:mediawiki-extensions-CentralAuth,代码行数:25,代码来源:ApiCentralAuthToken.php

示例2: crypt

 public function crypt($plaintext)
 {
     if (count($this->args) == 0) {
         $this->args[] = MWCryptRand::generateHex(8);
     }
     $this->hash = md5($this->args[0] . '-' . md5($plaintext));
 }
开发者ID:MediaWiki-stable,项目名称:1.26.1,代码行数:7,代码来源:MWSaltedPassword.php

示例3: lqtThread

 static function lqtThread($parser, $args, $parser, $frame)
 {
     $pout = $parser->getOutput();
     // Prepare information.
     $title = Title::newFromText($args['thread']);
     $thread = null;
     if ($args['thread']) {
         if (is_numeric($args['thread'])) {
             $thread = Threads::withId($args['thread']);
         } elseif ($title) {
             $article = new Article($title, 0);
             $thread = Threads::withRoot($article);
         }
     }
     if (is_null($thread)) {
         return '';
     }
     $data = array('type' => 'thread', 'args' => $args, 'thread' => $thread->id(), 'title' => $thread->title());
     if (!isset($pout->mLqtReplacements)) {
         $pout->mLqtReplacements = array();
     }
     // Generate a token
     $tok = MWCryptRand::generateHex(32);
     $text = '<!--LQT-THREAD-' . $tok . '-->';
     $pout->mLqtReplacements[$text] = $data;
     return $text;
 }
开发者ID:Rikuforever,项目名称:wiki,代码行数:27,代码来源:ParserFunctions.php

示例4: memcacheSave

 /**
  * Serialize and save data to memcache
  *
  * Note that it also sets a time to live for the
  * cached version set to self::TTL
  *
  * @param string $cacheKey Cache key
  * @param mixed  $data     Data to send to memcached, will use serialize();
  *
  * @return null
  */
 private function memcacheSave($data)
 {
     $url_friendly_key = MWCryptRand::generateHex(16);
     $key = wfMemcKey($url_friendly_key, 'wpdsso');
     $this->memcache->set($key, json_encode($data), self::TTL);
     return $url_friendly_key;
 }
开发者ID:renoirb,项目名称:mediawiki-fxa-sso,代码行数:18,代码来源:FirefoxAccountsManager.php

示例5: crypt

 public function crypt($plaintext)
 {
     if (count($this->args) == 0) {
         $this->args[] = MWCryptRand::generateHex(8);
     }
     $this->hash = md5($this->args[0] . '-' . md5($plaintext));
     if (!is_string($this->hash) || strlen($this->hash) < 32) {
         throw new PasswordError('Error when hashing password.');
     }
 }
开发者ID:claudinec,项目名称:galan-wiki,代码行数:10,代码来源:MWSaltedPassword.php

示例6: setUp

 protected function setUp()
 {
     // Needs to be before setup since this gets cached
     $this->mergeMwGlobalArrayValue('wgGroupPermissions', array('sysop' => array('deleterevision' => true)));
     parent::setUp();
     // Make a few edits for us to play with
     for ($i = 1; $i <= 5; $i++) {
         self::editPage(self::$page, MWCryptRand::generateHex(10), 'summary');
         $this->revs[] = Title::newFromText(self::$page)->getLatestRevID(Title::GAID_FOR_UPDATE);
     }
 }
开发者ID:MediaWiki-stable,项目名称:1.26.1,代码行数:11,代码来源:ApiRevisionDeleteTest.php

示例7: getPreloadId

 protected static function getPreloadId($create_if_not_exists)
 {
     global $wgUser, $wgRequest;
     if (!$wgUser->isAnon()) {
         return ModerationPreload::User_to_PreloadId($wgUser);
     }
     $anon_id = $wgRequest->getSessionData('anon_id');
     if (!$anon_id) {
         if (!$create_if_not_exists) {
             return false;
         }
         $anon_id = MWCryptRand::generateHex(32);
         $wgRequest->setSessionData('anon_id', $anon_id);
     }
     return ModerationPreload::AnonId_to_PreloadId($anon_id);
 }
开发者ID:ATCARES,项目名称:mediawiki-moderation,代码行数:16,代码来源:ModerationPreload.php

示例8: handleReauthBeforeExecute

 /**
  * Handle redirection when the user needs to (re)authenticate.
  *
  * Send the user to the login form if needed; in case the request was a POST, stash in the
  * session and simulate it once the user gets back.
  *
  * @param string $subPage
  * @return bool False if execution should be stopped.
  * @throws ErrorPageError When the user is not allowed to use this page.
  */
 protected function handleReauthBeforeExecute($subPage)
 {
     $authManager = AuthManager::singleton();
     $request = $this->getRequest();
     $key = 'AuthManagerSpecialPage:reauth:' . $this->getName();
     $securityLevel = $this->getLoginSecurityLevel();
     if ($securityLevel) {
         $securityStatus = AuthManager::singleton()->securitySensitiveOperationStatus($securityLevel);
         if ($securityStatus === AuthManager::SEC_REAUTH) {
             $queryParams = array_diff_key($request->getQueryValues(), ['title' => true]);
             if ($request->wasPosted()) {
                 // unique ID in case the same special page is open in multiple browser tabs
                 $uniqueId = MWCryptRand::generateHex(6);
                 $key = $key . ':' . $uniqueId;
                 $queryParams = ['authUniqueId' => $uniqueId] + $queryParams;
                 $authData = array_diff_key($request->getValues(), $this->getPreservedParams(false), ['title' => 1]);
                 $authManager->setAuthenticationSessionData($key, $authData);
             }
             $title = SpecialPage::getTitleFor('Userlogin');
             $url = $title->getFullURL(['returnto' => $this->getFullTitle()->getPrefixedDBkey(), 'returntoquery' => wfArrayToCgi($queryParams), 'force' => $securityLevel], false, PROTO_HTTPS);
             $this->getOutput()->redirect($url);
             return false;
         } elseif ($securityStatus !== AuthManager::SEC_OK) {
             throw new ErrorPageError('cannotauth-not-allowed-title', 'cannotauth-not-allowed');
         }
     }
     $uniqueId = $request->getVal('authUniqueId');
     if ($uniqueId) {
         $key = $key . ':' . $uniqueId;
         $authData = $authManager->getAuthenticationSessionData($key);
         if ($authData) {
             $authManager->removeAuthenticationSessionData($key);
             $this->setRequest($authData, true);
         }
     }
     return true;
 }
开发者ID:claudinec,项目名称:galan-wiki,代码行数:47,代码来源:AuthManagerSpecialPage.php

示例9: printFooterThings

    private function printFooterThings()
    {
        // prepare login token:
        $loginToken = MWCryptRand::generateHex(32);
        if ($this->getSkin()->getTitle()->getText() != 'UserLogin') {
            // Skin userlogin page to avoid collision
            if (session_id() == '') {
                wfSetupSession();
            }
            $this->getSkin()->getRequest()->setSessionData('wsLoginToken', $loginToken);
        }
        ?>

<div class="why-sign-up-popup mobile-form-popup">
    <h3>
        <?php 
        echo wfMessage('settlein-skin-modal-whysignup-title')->plain();
        ?>
    </h3>

    <?php 
        echo wfMessage('settlein-skin-modal-whysignup-text')->plain();
        ?>

</div>

<!-- Login popup form & wrapper -->
<div id="login-popup-wrapper">
</div>

<div class="login-popup-form mobile-form-popup">
    <h3>
        <?php 
        echo wfMessage('settlein-skin-modal-login-title')->plain();
        ?>
    </h3>

    <p>
        <?php 
        echo wfMessage('settlein-skin-modal-login-subtitle')->plain();
        ?>
    </p>

    <form class="" method="post" action="<?php 
        echo SpecialPage::getSafeTitleFor('UserLogin')->getFullURL('action=submitlogin&type=login');
        ?>
">
        <div class="form-group">
            <input type="text" class="form-control" placeholder="<?php 
        echo wfMessage('settlein-skin-modal-login-email-placeholder')->plain();
        ?>
" name="wpName" />
        </div>
        <div class="form-group">
            <input type="password" class="form-control" placeholder="<?php 
        echo wfMessage('settlein-skin-modal-login-password-placeholder')->plain();
        ?>
" name="wpPassword" />
        </div>
        <input type="hidden" name="wpLoginToken" value="<?php 
        echo $loginToken;
        ?>
" />
        <input type="hidden" name="wpRemember" value="1" />
        <div class="form-group">
            <input type="submit" name="wpLoginAttempt" class="btn btn-primary" value="<?php 
        echo wfMessage('settlein-skin-modal-login-login-button')->plain();
        ?>
"/>
            <a href="<?php 
        echo SpecialPage::getSafeTitleFor('Userlogin')->getFullURL('type=signup');
        ?>
" class="btn btn-cyanide">
                <?php 
        echo wfMessage('settlein-skin-modal-login-signup-button')->plain();
        ?>
            </a>
            <a href="<?php 
        echo SpecialPage::getSafeTitleFor('PasswordReset')->getFullURL();
        ?>
" class="pull-right">
                <?php 
        echo wfMessage('settlein-skin-modal-login-reset-password')->plain();
        ?>
            </a>
        </div>
    </form>
</div>

<!-- Add new article popup form & wrapper -->
<div id="add-new-article-popup-wrapper">
</div>

<div class="add-new-article-popup-form">
    <h3>
	    <?php 
        echo wfMessage('settlein-skin-add-new-article-window-title')->plain();
        ?>
    </h3>
	<p>
//.........这里部分代码省略.........
开发者ID:vedmaka,项目名称:SettleInSkin,代码行数:101,代码来源:SettleInTemplate.php

示例10: setCreateaccountToken

 /**
  * Randomly generate a new createaccount token and attach it to the current session
  */
 public static function setCreateaccountToken()
 {
     global $wgRequest;
     $wgRequest->setSessionData('wsCreateaccountToken', MWCryptRand::generateHex(32));
 }
开发者ID:natebrunette,项目名称:sphericalcow,代码行数:8,代码来源:SpecialUserlogin.php

示例11: newUUIDv4

	/**
	 * Return an RFC4122 compliant v4 UUID
	 *
	 * @param $flags integer Bitfield (supports UIDGenerator::QUICK_RAND)
	 * @return string
	 * @throws MWException
	 */
	public static function newUUIDv4( $flags = 0 ) {
		$hex = ( $flags & self::QUICK_RAND )
			? wfRandomString( 31 )
			: MWCryptRand::generateHex( 31 );

		return sprintf( '%s-%s-%s-%s-%s',
			// "time_low" (32 bits)
			substr( $hex, 0, 8 ),
			// "time_mid" (16 bits)
			substr( $hex, 8, 4 ),
			// "time_hi_and_version" (16 bits)
			'4' . substr( $hex, 12, 3 ),
			// "clk_seq_hi_res (8 bits, variant is binary 10x) and "clk_seq_low" (8 bits)
			dechex( 0x8 | ( hexdec( $hex[15] ) & 0x3 ) ) . $hex[16] . substr( $hex, 17, 2 ),
			// "node" (48 bits)
			substr( $hex, 19, 12 )
		);
	}
开发者ID:nahoj,项目名称:mediawiki_ynh,代码行数:25,代码来源:UIDGenerator.php

示例12: renewSessionId

 /**
  * Renew the user's session id, using strong entropy
  */
 private function renewSessionId()
 {
     global $wgSecureLogin, $wgCookieSecure;
     if ($wgSecureLogin && !$this->mStickHTTPS) {
         $wgCookieSecure = false;
     }
     // If either we don't trust PHP's entropy, or if we need
     // to change cookie settings when logging in because of
     // wpStickHTTPS, then change the session ID manually.
     $cookieParams = session_get_cookie_params();
     if (wfCheckEntropy() && $wgCookieSecure == $cookieParams['secure']) {
         session_regenerate_id(false);
     } else {
         $tmp = $_SESSION;
         session_destroy();
         wfSetupSession(MWCryptRand::generateHex(32));
         $_SESSION = $tmp;
     }
 }
开发者ID:mangowi,项目名称:mediawiki,代码行数:22,代码来源:SpecialUserlogin.php

示例13: execute

 /**
  * Execute
  * @param $par Parameter passed to the page
  */
 function execute($par)
 {
     global $wgRCShowWatchingUsers, $wgEnotifWatchlist, $wgShowUpdatedMarker;
     $user = $this->getUser();
     $output = $this->getOutput();
     # Anons don't get a watchlist
     if ($user->isAnon()) {
         $output->setPageTitle($this->msg('watchnologin'));
         $output->setRobotPolicy('noindex,nofollow');
         $llink = Linker::linkKnown(SpecialPage::getTitleFor('Userlogin'), $this->msg('loginreqlink')->escaped(), array(), array('returnto' => $this->getTitle()->getPrefixedText()));
         $output->addHTML($this->msg('watchlistanontext')->rawParams($llink)->parse());
         return;
     }
     // Add feed links
     $wlToken = $user->getOption('watchlisttoken');
     if (!$wlToken) {
         $wlToken = MWCryptRand::generateHex(40);
         $user->setOption('watchlisttoken', $wlToken);
         $user->saveSettings();
     }
     $this->addFeedLinks(array('action' => 'feedwatchlist', 'allrev' => 'allrev', 'wlowner' => $user->getName(), 'wltoken' => $wlToken));
     $this->setHeaders();
     $this->outputHeader();
     $output->addSubtitle($this->msg('watchlistfor2', $user->getName())->rawParams(SpecialEditWatchlist::buildTools(null)));
     $request = $this->getRequest();
     $mode = SpecialEditWatchlist::getMode($request, $par);
     if ($mode !== false) {
         # TODO: localise?
         switch ($mode) {
             case SpecialEditWatchlist::EDIT_CLEAR:
                 $mode = 'clear';
                 break;
             case SpecialEditWatchlist::EDIT_RAW:
                 $mode = 'raw';
                 break;
             default:
                 $mode = null;
         }
         $title = SpecialPage::getTitleFor('EditWatchlist', $mode);
         $output->redirect($title->getLocalUrl());
         return;
     }
     $nitems = $this->countItems();
     if ($nitems == 0) {
         $output->addWikiMsg('nowatchlist');
         return;
     }
     // @TODO: use FormOptions!
     $defaults = array('days' => floatval($user->getOption('watchlistdays')), 'hideMinor' => (int) $user->getBoolOption('watchlisthideminor'), 'hideBots' => (int) $user->getBoolOption('watchlisthidebots'), 'hideAnons' => (int) $user->getBoolOption('watchlisthideanons'), 'hideLiu' => (int) $user->getBoolOption('watchlisthideliu'), 'hidePatrolled' => (int) $user->getBoolOption('watchlisthidepatrolled'), 'hideOwn' => (int) $user->getBoolOption('watchlisthideown'), 'namespace' => 'all', 'invert' => false, 'associated' => false);
     $this->customFilters = array();
     wfRunHooks('SpecialWatchlistFilters', array($this, &$this->customFilters));
     foreach ($this->customFilters as $key => $params) {
         $defaults[$key] = $params['msg'];
     }
     # Extract variables from the request, falling back to user preferences or
     # other default values if these don't exist
     $prefs['days'] = floatval($user->getOption('watchlistdays'));
     $prefs['hideminor'] = $user->getBoolOption('watchlisthideminor');
     $prefs['hidebots'] = $user->getBoolOption('watchlisthidebots');
     $prefs['hideanons'] = $user->getBoolOption('watchlisthideanons');
     $prefs['hideliu'] = $user->getBoolOption('watchlisthideliu');
     $prefs['hideown'] = $user->getBoolOption('watchlisthideown');
     $prefs['hidepatrolled'] = $user->getBoolOption('watchlisthidepatrolled');
     # Get query variables
     $values = array();
     $values['days'] = $request->getVal('days', $prefs['days']);
     $values['hideMinor'] = (int) $request->getBool('hideMinor', $prefs['hideminor']);
     $values['hideBots'] = (int) $request->getBool('hideBots', $prefs['hidebots']);
     $values['hideAnons'] = (int) $request->getBool('hideAnons', $prefs['hideanons']);
     $values['hideLiu'] = (int) $request->getBool('hideLiu', $prefs['hideliu']);
     $values['hideOwn'] = (int) $request->getBool('hideOwn', $prefs['hideown']);
     $values['hidePatrolled'] = (int) $request->getBool('hidePatrolled', $prefs['hidepatrolled']);
     foreach ($this->customFilters as $key => $params) {
         $values[$key] = (int) $request->getBool($key);
     }
     # Get namespace value, if supplied, and prepare a WHERE fragment
     $nameSpace = $request->getIntOrNull('namespace');
     $invert = $request->getBool('invert');
     $associated = $request->getBool('associated');
     if (!is_null($nameSpace)) {
         $eq_op = $invert ? '!=' : '=';
         $bool_op = $invert ? 'AND' : 'OR';
         $nameSpace = intval($nameSpace);
         // paranioa
         if (!$associated) {
             $nameSpaceClause = "rc_namespace {$eq_op} {$nameSpace}";
         } else {
             $associatedNS = MWNamespace::getAssociated($nameSpace);
             $nameSpaceClause = "rc_namespace {$eq_op} {$nameSpace} " . $bool_op . " rc_namespace {$eq_op} {$associatedNS}";
         }
     } else {
         $nameSpace = '';
         $nameSpaceClause = '';
     }
     $values['namespace'] = $nameSpace;
     $values['invert'] = $invert;
//.........这里部分代码省略.........
开发者ID:nischayn22,项目名称:mediawiki-core,代码行数:101,代码来源:SpecialWatchlist.php

示例14: renewSessionId

 /**
  * Renew the user's session id, using strong entropy
  */
 private function renewSessionId()
 {
     if (wfCheckEntropy()) {
         session_regenerate_id(false);
     } else {
         //If we don't trust PHP's entropy, we have to replace the session manually
         $tmp = $_SESSION;
         session_unset();
         session_write_close();
         session_id(MWCryptRand::generateHex(32));
         session_start();
         $_SESSION = $tmp;
     }
 }
开发者ID:slackfaith,项目名称:deadbrain_site,代码行数:17,代码来源:SpecialUserlogin.php

示例15: scratchTitle

 /**
  * @return Title
  */
 function scratchTitle()
 {
     return Title::makeTitle(NS_LQT_THREAD, MWCryptRand::generateHex(32));
 }
开发者ID:Rikuforever,项目名称:wiki,代码行数:7,代码来源:View.php


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