CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识 & 商标
  • 商业解决方案
  • 周边产品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与
    • 问题 (Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 新闻稿
    • 领英
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • 帮助 & 支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
    • 数据源
    • 错误
    • 事件
    • 表单
    • HTTP
    • 国际化
    • 日志
    • 邮件
    • 网络
    • ORM
    • 路由
    • 测试套件
    • 工具
      • 加密
      • 异常
    • 验证
    • 视图

类安全

Security 库包含与安全相关的实用方法

命名空间: Cake\Utility

属性摘要

  • $_instance protected static
    object|null

    要使用的加密实现。

  • $_salt protected static
    string|null

    用于加密和解密例程的 HMAC 盐。

  • $hashType public static
    string

    默认哈希方法。如果 $type 参数对于 Security::hash() 没有指定,则使用此值。默认为 'sha1'。

方法摘要

  • _checkKey() protected static

    检查加密密钥的长度是否正确。

  • constantEquals() public static

    一个抗时序攻击的比较,优先使用本机 PHP 实现。

  • decrypt() public static

    使用 AES-256 解密值。

  • encrypt() public static

    使用 AES-256 加密值。

  • engine() public static

    根据已加载的扩展获取加密实现。

  • getSalt() public static

    获取用于加密/解密例程的 HMAC 盐。

  • hash() public static

    使用给定方法从字符串创建哈希值。

  • insecureRandomBytes() public static

    与上面的 randomBytes() 相似,但不是加密安全的。

  • randomBytes() public static

    从安全来源获取随机字节。

  • randomString() public static

    创建一个安全的随机字符串。

  • setHash() public static

    为 Security 对象设置默认哈希方法。这会影响所有使用 Security::hash() 的对象。

  • setSalt() public static

    设置用于加密/解密例程的 HMAC 盐。

方法详情

_checkKey() ¶ protected static

_checkKey(string $key, string $method): void

检查加密密钥的长度是否正确。

参数
string $key

要检查的密钥。

string $method

正在为其检查密钥的方法。

返回
void
抛出
InvalidArgumentException
当密钥长度不是 256 位/32 字节时

constantEquals() ¶ public static

constantEquals(mixed $original, mixed $compare): bool

一个抗时序攻击的比较,优先使用本机 PHP 实现。

参数
mixed $original

原始值。

mixed $compare

比较值。

返回
bool

decrypt() ¶ public static

decrypt(string $cipher, string $key, string|null $hmacSalt = null): string|null

使用 AES-256 解密值。

参数
string $cipher

要解密的密文。

string $key

要作为密码密钥使用的 256 位/32 字节密钥。

string|null $hmacSalt optional

用于 HMAC 过程的盐。保留为空以使用 Security::getSalt() 的值。

返回
string|null
抛出
InvalidArgumentException
在数据或密钥无效时。

encrypt() ¶ public static

encrypt(string $plain, string $key, string|null $hmacSalt = null): string

使用 AES-256 加密值。

警告 您不能正确地加密/解密尾随空字节的数据。由于 PHP 在加密之前用空字节填充消息的方式,任何尾随空字节都会在解密时被删除。

参数
string $plain

要加密的值。

string $key

要作为密码密钥使用的 256 位/32 字节密钥。

string|null $hmacSalt optional

用于 HMAC 过程的盐。保留为空以使用 Security::getSalt() 的值。

返回
string
抛出
InvalidArgumentException
在数据或密钥无效时。

engine() ¶ public static

engine(Cake\Utility\Crypto\OpenSsl|null $instance = null): Cake\Utility\Crypto\OpenSsl

根据已加载的扩展获取加密实现。

您可以使用此方法强制在 openssl/自定义实现之间进行决定。

参数
Cake\Utility\Crypto\OpenSsl|null $instance optional

要使用的加密实例。

返回
Cake\Utility\Crypto\OpenSsl
抛出
InvalidArgumentException
当没有可用的兼容加密扩展时。

getSalt() ¶ public static

getSalt(): string

获取用于加密/解密例程的 HMAC 盐。

返回
string

hash() ¶ public static

hash(string $string, string|null $algorithm = null, string|bool $salt = false): string

使用给定方法从字符串创建哈希值。

参数
string $string

要哈希的字符串

string|null $algorithm optional

要使用的哈希算法(例如 sha1、sha256 等)。可以是 hash_algos() 返回的列表中包含的任何有效算法。如果没有传递值,则使用 Security::$hashType 指定的类型。

string|bool $salt optional

如果为 true,则会自动将 Security::getSalt() 返回的值追加到 $string。

返回
string
抛出
InvalidArgumentException
链接
https://book.cakephp.com.cn/5/en/core-libraries/security.html#hashing-data

insecureRandomBytes() ¶ public static

insecureRandomBytes(int $length): string

与上面的 randomBytes() 相似,但不是加密安全的。

参数
int $length

您想要的字节数。

返回
string
另请参阅
\Cake\Utility\Security::randomBytes()

randomBytes() ¶ public static

randomBytes(int $length): string

从安全来源获取随机字节。

如果此方法找不到安全的随机数据源,它将回退到不安全的来源并触发警告。

参数
int $length

您想要的字节数。

返回
string

randomString() ¶ public static

randomString(int $length = 64): string

创建一个安全的随机字符串。

参数
int $length optional

字符串长度。默认 64。

返回
string

setHash() ¶ public static

setHash(string $hash): void

为 Security 对象设置默认哈希方法。这会影响所有使用 Security::hash() 的对象。

参数
string $hash

要使用的方法 (sha1/sha256/md5 等)

返回
void
另请参阅
\Cake\Utility\Security::hash()

setSalt() ¶ public static

setSalt(string $salt): void

设置用于加密/解密例程的 HMAC 盐。

参数
string $salt

用于加密例程的盐。

返回
void

属性详情

$_instance ¶ protected static

要使用的加密实现。

类型
object|null

$_salt ¶ protected static

用于加密和解密例程的 HMAC 盐。

类型
string|null

$hashType ¶ public static

默认哈希方法。如果 $type 参数对于 Security::hash() 没有指定,则使用此值。默认为 'sha1'。

类型
string
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识 & 商标
  • 社区
  • 参与
  • 问题 (Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 新闻稿
  • 领英
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • 帮助 & 支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成