CakePHP如何在外部生成其密码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CakePHP如何在外部生成其密码相关的知识,希望对你有一定的参考价值。

Cakephp如何在外部生成其密码

我习惯使用php,我有一个需要与CakePHP集成的应用程序。

基本上我正在尝试创建一个可以使用CakePHP的相同哈希和加密方法的登录表单。

我查看几个文件,如CakeComponent和蛋糕PHP的AuthComponent,这是我得到的

$string = "demopassw0rd";
$type = null;
$salt = "mySALT";

$string = $salt . "demo1234";

$stringnew = sha1($string);
echo md5($stringnew);

echo "    SPACES        ";

$stringnew2 = bin2hex(mhash(MHASH_SHA256, $string));
echo md5($stringnew2);


//Below is the real code.

                if ($salt) {
                        if (is_string($salt)) {
                                $string = $salt . $string;
                        } else {
                                $string = $salt . $string;
                        }
                }

                if (empty($type)) {
                        $type = $hashType;
                }
                $type = strtolower($type);

                if ($type == 'sha1' || $type == null) {
                        if (function_exists('sha1')) {
                                $return = sha1($string);
                                return $return;
                        }
                        $type = 'sha256';
                }

                if ($type == 'sha256' && function_exists('mhash')) {
                        return bin2hex(mhash(MHASH_SHA256, $string));
                }

使用从cake php中提取的上述方法,我无法检索存储在mysql中的相同密码哈希。

我正在尝试创建一个哈希方法,这样我就可以创建另一个不是cakephp框架的登录表单,并且可以使用与我位于同一服务器的cake php软件相同的登录表。

 * The level of CakePHP security.
 */
        Configure::write('Security.level', 'medium');

/**
 * A random string used in security hashing methods.
 */
        Configure::write('Security.salt', 'mySALT');

/**
 * A random numeric string (digits only) used to encrypt/decrypt strings.
 */
        Configure::write('Security.cipherSeed', '65986349865349087509054352724');

我如何利用上面的配置来创建我自己的哈希方法,可以将我的输入字符串哈希,就像我使用cakephp存储在mysql中一样

我为上面的配置解释了cake php散列方法

首先

$salt . $string to form a $string value

then sha1($string) and then md5($string)

or bin2hex with the sha264 ($string) and then md5(string)

但是我试过并且没能得到与蛋糕php相同的哈希值

答案

另一个选择可能是在你的蛋糕应用程序中调用web服务..考虑到你可以从任何语言或应用程序调用它...你正在使用蛋糕的机制像马克说“使用现有的类”但在另一种形式......

以上是关于CakePHP如何在外部生成其密码的主要内容,如果未能解决你的问题,请参考以下文章

Sitecore WFFM - 如何在外部触发表单

如何使用 typescript 在外部 js 文件中调用函数

使用反射在外部JAR / CLASS上调用包含Hibernate事务的方法(Java EE)

Piwik:生成计数器图像以在外部站点上显示

Service Fabric - 如何在外部公开 wcf 服务

如何在外部源和 azure 突触分析之间传输数据