mirror of
https://github.com/espocrm/espocrm.git
synced 2026-06-27 22:46:04 +00:00
generate keys ids improvements
This commit is contained in:
@@ -219,7 +219,7 @@ class DataManager
|
||||
|
||||
$cryptKey = $config->get('cryptKey');
|
||||
if (!$cryptKey) {
|
||||
$cryptKey = \Espo\Core\Utils\Util::generateKey();
|
||||
$cryptKey = \Espo\Core\Utils\Util::generateSecretKey();
|
||||
$config->set('cryptKey', $cryptKey);
|
||||
}
|
||||
|
||||
|
||||
@@ -97,6 +97,6 @@ class Crypt
|
||||
|
||||
public function generateKey()
|
||||
{
|
||||
return \Espo\Core\Utils\Util::generateKey();
|
||||
return \Espo\Core\Utils\Util::generateSecretKey();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -555,28 +555,35 @@ class Util
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function generateId()
|
||||
public static function generateId() : string
|
||||
{
|
||||
return uniqid() . substr(md5(rand()), 0, 4);
|
||||
}
|
||||
|
||||
public static function generateApiKey()
|
||||
public static function generateMoreEntropyId() : string
|
||||
{
|
||||
return substr(md5(uniqid(rand(), true)), 0, 16) . substr(md5(rand()), 0, 4);
|
||||
}
|
||||
|
||||
public static function generateCryptId() : string
|
||||
{
|
||||
if (!function_exists('random_bytes')) {
|
||||
return self::generateId();
|
||||
return self::generateMoreEntropyId();
|
||||
}
|
||||
return bin2hex(random_bytes(16));
|
||||
}
|
||||
|
||||
public static function generateSecretKey()
|
||||
public static function generateApiKey() : string
|
||||
{
|
||||
if (!function_exists('random_bytes')) {
|
||||
return self::generateId();
|
||||
}
|
||||
return bin2hex(random_bytes(16));
|
||||
return self::generateCryptId();
|
||||
}
|
||||
|
||||
public static function generateKey()
|
||||
public static function generateSecretKey() : string
|
||||
{
|
||||
return self::generateCryptId();
|
||||
}
|
||||
|
||||
public static function generateKey() : string
|
||||
{
|
||||
return md5(uniqid(rand(), true));
|
||||
}
|
||||
|
||||
@@ -31,6 +31,8 @@ namespace Espo\Entities;
|
||||
|
||||
class UniqueId extends \Espo\Core\ORM\Entity
|
||||
{
|
||||
|
||||
public function getIdValue() : ?string
|
||||
{
|
||||
return $this->get('name');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ class UniqueId extends \Espo\Core\ORM\Repositories\RDB
|
||||
public function getNew() : ?Entity
|
||||
{
|
||||
$entity = parent::getNew();
|
||||
$entity->set('name', \Espo\Core\Utils\Util::generateId());
|
||||
$entity->set('name', \Espo\Core\Utils\Util::generateMoreEntropyId());
|
||||
return $entity;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ class Webhook extends \Espo\Core\ORM\Repositories\RDB
|
||||
|
||||
protected function fillSecretKey(Entity $entity)
|
||||
{
|
||||
$secretKey = \Espo\Core\Utils\Util::generateKey();
|
||||
$secretKey = \Espo\Core\Utils\Util::generateSecretKey();
|
||||
$entity->set('secretKey', $secretKey);
|
||||
}
|
||||
|
||||
|
||||
@@ -245,7 +245,7 @@ class User extends Record
|
||||
throw new Forbidden(json_encode(['reason' => 'Already-Sent']));
|
||||
}
|
||||
|
||||
$requestId = Util::generateId() . Util::generateKey();
|
||||
$requestId = Util::generateCryptId();
|
||||
|
||||
$passwordChangeRequest = $this->getEntityManager()->getEntity('PasswordChangeRequest');
|
||||
$passwordChangeRequest->set([
|
||||
@@ -411,7 +411,7 @@ class User extends Record
|
||||
$entity->set('apiKey', $apiKey);
|
||||
|
||||
if ($entity->get('authMethod') === 'Hmac') {
|
||||
$secretKey = \Espo\Core\Utils\Util::generateKey();
|
||||
$secretKey = \Espo\Core\Utils\Util::generateSecretKey();
|
||||
$entity->set('secretKey', $secretKey);
|
||||
}
|
||||
|
||||
@@ -508,7 +508,7 @@ class User extends Record
|
||||
$entity->set('apiKey', $apiKey);
|
||||
|
||||
if ($entity->get('authMethod') === 'Hmac') {
|
||||
$secretKey = \Espo\Core\Utils\Util::generateKey();
|
||||
$secretKey = \Espo\Core\Utils\Util::generateSecretKey();
|
||||
$entity->set('secretKey', $secretKey);
|
||||
}
|
||||
}
|
||||
@@ -559,7 +559,7 @@ class User extends Record
|
||||
|
||||
if ($entity->isApi()) {
|
||||
if ($entity->isAttributeChanged('authMethod') && $entity->get('authMethod') === 'Hmac') {
|
||||
$secretKey = \Espo\Core\Utils\Util::generateKey();
|
||||
$secretKey = \Espo\Core\Utils\Util::generateSecretKey();
|
||||
$entity->set('secretKey', $secretKey);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user