《modern php》的note4-password_verify

本文探讨了PHP7中的password_verify方法对于防止时序攻击的重要性,并对比了传统字符串匹配方法,介绍了时序攻击的基本原理及其防御措施。

读了将近一半了,搜了下关于php7的书暂时还没有很好的,继续等

 

http://php.net/manual/zh/function.password-verify.php

 

password-verify

这个方法以前没有在意过

起码我这边的做法还是把注册时用的方法再hash一下

然后用字符串去判断跟数据库中的值是否===

没用过这个方法

今天一看,竟然有这个原因

时序攻击(timing attacks)对此函数不起作用。

 

最简单的度娘解释

在密码学中,时序攻击是一种侧信道攻击,攻击者试图通过分析加密算法的时间执行来推导出密码。每一个逻辑运算在计算机需要时间来执行,根据输入不同,精确测量执行时间,根据执行时间反推出密码。

 

有这个好处自然还是用一下比较好,正想着改进下

 

 

 

 

 

<think>我们正在讨论Innovus工具中的几个命令:getMultiCpuUsage -localCpu、get_verify_drc_mode、set_verify_drc_mode和verify_drc。根据用户的问题,我们需要解释这些命令的含义和用法。同时,用户提供了三条引用信息,这些信息主要涉及verify_drc的使用注意事项,特别是设置mode的重要性。 首先,我们逐个解释这些命令: 1. `getMultiCpuUsage -localCpu`: 这个命令用于获取当前Innovus会话中本地CPU的使用情况。在多CPU环境中运行Innovus时,可以使用此命令来监控CPU资源的使用情况,以便优化任务分配和资源管理。选项`-localCpu`指定只查看本地CPU(即当前运行Innovus的机器)的使用情况。 2. `get_verify_drc_mode`: 这个命令用于获取当前设置的DRC验证模式。DRC验证模式决定了在执行`verify_drc`命令时哪些规则会被检查或忽略。通过使用不同的选项(如`-disable_rules`、`-quiet`等),可以获取特定信息: - `-disable_rules`: 获取当前被禁用的DRC规则列表。 - `-quiet`: 安静模式,不输出多余信息,只返回结果。 3. `set_verify_drc_mode`: 这个命令用于设置DRC验证模式。在执行`verify_drc`之前,必须通过此命令来配置需要检查的DRC规则以及其他相关选项。例如,可以启用或禁用某些规则,设置检查的严格程度等。引用[1]和[2]都强调了设置mode的重要性,否则验证结果可能不准确。 4. `verify_drc`: 这个命令用于执行设计规则检查(DRC)。它会根据当前设置的DRC验证模式(通过`set_verify_drc_mode`配置)来检查设计中的DRC违例。引用[2]中提到,在执行ecoRoute之前必须先执行`verify_drc`,否则工具可能无法识别某些阻挡(routing blockage)的存在。引用[3]则提到物理合规修正器可以自动修复90%的DRC错误。 接下来,结合引用信息,我们强调设置DRC验证模式的重要性: - 引用[1]: 在innovus中做verify_drc前一定要设置好verify的mode,否则结果不准确。 - 引用[2]: 在做DRC修复之前,需要提前设置好verify的相关mode。特别提醒在ecoRoute之前必须先执行verify_drc,否则工具看不到routing blockage。 因此,正确的流程应该是: 1. 使用`set_verify_drc_mode`配置需要检查的DRC规则。 2. 执行`verify_drc`进行检查。 3. 根据检查结果进行修复(可能使用自动修复工具,如引用[3]提到的物理合规修正器)。 4. 如果需要,再次执行`verify_drc`验证修复效果。 此外,引用[3]提到了一种自动修复DRC错误的方法(修复90%的DRC错误和100%的LVS错误),这通常是通过工具内置的修复引擎(如ecoRoute)来实现的。 现在,我们按照要求组织回答,包括使用LaTeX格式(如果有数学表达式)和生成相关问题。 </think>### Innovus 相关指令详解 #### 1. **`getMultiCpuUsage -localCpu`** - **功能**:获取当前 Innovus 会话的本地 CPU 利用率 - **用途**:监控工具资源消耗,优化多线程任务调度 - **输出示例**: ``` Local CPU Usage: 75.2% (8 cores active) ``` - **应用场景**: 大规模设计运行时监控负载,避免 CPU 过载导致性能下降。 --- #### 2. **`get_verify_drc_mode` 系列指令** - **基础命令**: ```tcl get_verify_drc_mode ``` **功能**:获取当前 DRC 验证模式的配置参数[^1] **输出**:检查规则集、严格等级、排除层等配置 - **带选项命令**: ```tcl get_verify_drc_mode -disable_rules -quiet ``` - **`-disable_rules`**:列出当前禁用的 DRC 规则(如金属间距、通孔覆盖等) - **`-quiet`**:抑制非关键信息输出,仅返回核心数据 **用途**:快速检查规则禁用状态,适用于自动化流程集成 --- #### 3. **`set_verify_drc_mode`** - **功能**:配置 DRC 验证模式参数[^1][^2] - **关键参数**: ```tcl set_verify_drc_mode -ruleSet {high_density} -excludeLayer {M5 M6} -maxError 1000 ``` - **`-ruleSet`**:指定规则集(如 `high_density` 针对先进工艺) - **`-excludeLayer`**:排除特定金属层检查(加速验证) - **`-maxError`**:设置最大报错阈值(超限即终止) - **注意事项**: - **必须优先于 `verify_drc` 执行**,否则结果不可靠[^1] - 修改后需用 `commit_verify_drc_mode` 保存配置 --- #### 4. **`verify_drc`** - **功能**:执行设计规则检查(Design Rule Checking) - **流程要求**: 1. 先通过 `set_verify_drc_mode` 配置规则[^1] 2. 添加物理约束(如 `routing blockage`)后必须执行[^2] 3. 自动修复工具(如 ECO)依赖其结果[^3] - **输出解析**: - ** Violation **:坐标位置、规则类型、违例程度 - ** Summary **:按严重性分类的统计报告 - **修复关联**: 90% 的 DRC 错误可通过物理合规修正器自动修复[^3] --- ### 关键工作流示例 ```tcl # 1. 配置DRC模式 set_verify_drc_mode -ruleSet advanced_10nm -maxError 500 commit_verify_drc_mode # 2. 添加布线阻挡(修复前必需) addRoutingBlockage -layer {M3 M4} -rect {0 0 100 200} # 3. 执行验证 verify_drc ;# 依赖步骤1的配置[^1][^2] # 4. 自动修复 run_drc_auto_fix ;# 可修复90%错误[^3] # 5. 二次验证 verify_drc ;# 确认修复效果 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值