当前位置: 首页 > news >正文

使用iPhone/安卓手机代替门禁卡

文章目录

    • 基础知识
      • ID卡和IC卡
        • ID卡技术
        • IC卡技术
        • IC卡加密方式
        • 手机NFC只能模拟IC卡,而不支持ID卡
        • 电梯卡可能使用滚动码验证方式,不支持使用手机模拟
      • (IC类型)门禁卡验证方式
        • 仅验证ID(卡号)
        • 验证ID+分区信息
    • iPhone
      • 前提条件
      • 苹果官方并不支持直接复制或模拟非合作的实体门禁卡
      • 对于只验证ID的门禁,可借用公交卡来充当门禁卡
    • 安卓
      • 前提条件
      • 创建空白卡,然后去找物业写卡(支持加密卡、非加密卡,物业可能收费)
        • 打开钱包或其他支持创建空白卡的应用
        • 创建空白卡
        • 保存并准备写卡
        • 前往物业处写卡
        • 手机写卡授权
      • 用手机复制实体门禁卡(只支持非加密卡)
        • 打开钱包应用并准备复制
        • 读取和复制非加密门禁卡信息
      • 手机可以仅复制加密卡的ID,借助写卡器完成完整卡片信息的写入
        • 前提条件:有些新版的钱包软件对于加密卡不会直接失败,而是可以选择只复制ID
        • 打开钱包应用并准备复制
        • 读取和复制加密门禁卡的ID信息
        • 通过写卡器读取实体门禁卡信息
        • 通过写卡器将完整门禁卡信息写入手机
      • 手机无法复制加密卡,借助空白卡写入ID信息,再复制给手机,后续步骤同前
        • 前提条件:手机复制加密卡会提示无法复制加密卡,然后失败
        • 通过写卡器读取实体门禁卡的ID
        • 通过写卡器将ID写入空白卡
        • 打开钱包应用并准备复制
        • 读取和复制写入ID的卡
        • 通过写卡器读取实体门禁卡信息
        • 通过写卡器将完整门禁卡信息写入手机
      • 写卡器读取加密卡失败的处理方式
        • 借助写卡器复制加密卡的技术原理
        • 写卡器读取加密卡失败,可以尝试“完全解密”按钮
    • 物理逃课方式

基础知识

ID卡和IC卡

ID卡技术

ID卡,全称为身份识别卡(Identification Card),是一种非接触式射频识别(RFID)卡。ID卡的特点在于其简单、低成本的设计,主要用于提供唯一标识信息:

  • 工作原理:ID卡一般采用低频(LF,如125kHz)或高频(HF,如13.56MHz)工作频率,通过电磁感应原理与读卡器进行通信。当卡片靠近读卡器时,读卡器发射磁场,卡片上的天线接收能量并激活内部电路,电路将卡片的唯一ID号发送回读卡器。

  • 结构与功能:ID卡内部包含一个固定且不可更改的唯一标识符(ID号),通常是一个长串数字。ID卡不具备数据存储能力,卡内除ID号外无其他可读写数据区域。因此,ID卡仅用于身份识别,无法存储和更新其他信息。

  • 安全性:ID卡的安全性主要依赖于其ID号的唯一性。由于卡内没有加密机制,ID号以明文形式发送,容易被读取和复制。一旦ID号被获取,就可以制作出复制卡,这使得ID卡在安全防护方面相对较弱。

IC卡技术

IC卡,全称为集成电路卡(Integrated Circuit Card),是一种智能卡,属于RFID卡的一种,但功能远超ID卡:

  • 工作原理:IC卡同样采用高频(HF,13.56MHz)工作频率,与读卡器通过电磁耦合方式通信。与ID卡不同的是,IC卡内部集成了一颗微处理器芯片,包含存储器、控制器以及其他逻辑单元,支持双向通信和数据加密。

  • 结构与功能:IC卡具有多种存储结构,如Mifare Classic、Mifare Ultralight、DESFire EV1等,这些卡型内部划分为若干个扇区或块,每个扇区包含存储空间、访问控制位和加密密钥。IC卡不仅能存储用户的唯一标识信息,还可以储存其他详细数据(如个人信息、交易记录、访问权限等),并且支持读写操作。部分IC卡还支持多级安全机制,如密钥分层保护、AES加密等。

  • 安全性:IC卡的安全性显著高于ID卡。其独特的加密机制和访问控制机制可以防止未授权的读取、修改或复制。每个扇区的访问需要正确的密钥,且数据传输过程中可以进行加密,确保数据安全。此外,一些高级IC卡还支持动态密钥生成、防冲突算法等高级安全特性。

IC卡加密方式
  • 非加密卡
    • 无加密保护:卡内数据以明文形式存储,无密钥管理,任何具备读卡能力的设备均可直接读取数据。
    • 无安全算法:数据读写操作不涉及加密算法,以原始、未加密形式存储和传输。
    • 简单访问控制(如有):可能有基础访问控制机制,如部分扇区锁定,但通常基于简单密码或硬件开关,而非动态密钥管理。
    • 防克隆与防篡改能力有限:无专门防克隆技术,卡片信息易被复制;数据篡改可能仅依靠简单错误检测机制,无法有效阻止恶意篡改。
  • 加密卡(全加密卡)
    • 数据加密:存储区数据均经加密处理,确保未经授权无法读取或解析。
    • 密钥管理:内置多个密钥,包括认证密钥、读写密钥、管理密钥等,采用多重层次结构增强安全性。
    • 安全算法:采用国际认可加密算法对数据进行加解密,确保数据传输和存储安全性。
    • 访问控制:每个存储区域(扇区、块)均有独立访问权限控制,只有持有正确密钥的读卡器才能进行相应操作。
    • 防克隆与防篡改:采用物理和逻辑手段防止卡片被非法复制或内部数据被恶意修改。
  • 半加密卡
    • 部分加密:仅对部分重要数据或特定存储区域进行加密,其他部分以明文或较低级别加密存储。
    • 简化密钥管理:可能仅有一组或多组通用密钥,密钥层次结构相对加密卡简单,访问控制简化。
    • 基本安全算法:使用加密算法保护数据,但可能采用较简单算法或较低密钥长度,安全等级低于全加密卡。
    • 有限访问控制:仅对某些敏感数据或功能实施访问控制,并非对所有存储区域进行严格管理。
    • 适度防克隆与防篡改:具备一定防克隆措施,如使用部分硬件保护或简单密码保护,但防篡改能力相对较弱。
手机NFC只能模拟IC卡,而不支持ID卡

手机NFC(近场通信)功能主要用于模拟现有RFID卡片以实现移动支付、门禁控制等应用场景。

但是手机NFC功能只能模拟IC卡,而不支持ID卡,这是由硬件和技术标准决定的,不可能通过软件、应用、配置等方式改变。

具体而言,手机NFC功能遵循ISO/IEC 14443 Type A/B、ISO/IEC 18092等国际标准,这些标准主要针对的是高频(HF,13.56MHz)的RFID技术,与IC卡的工作频率和技术规范相吻合。而ID卡通常工作在低频(LF,如125kHz),其通信协议与NFC标准不完全兼容,导致手机NFC直接模拟ID卡在硬件层面就是一件不可能的事!

电梯卡可能使用滚动码验证方式,不支持使用手机模拟

滚动码(也称序列号滚动码或动态密码)的工作原理是,每次使用时,电梯卡都会生成一个新的、唯一的认证码,这个认证码会与电梯控制器中的预期值进行匹配,只有匹配成功才会允许电梯运行至指定楼层。

由于滚动码系统的存在,即使手机模拟了电梯卡的基本信息,也无法预测和生成正确的滚动码。而且可能会造成原有电梯卡不可用(需要重新去物业刷新和激活),建议保持谨慎,请勿尝试。

(IC类型)门禁卡验证方式

仅验证ID(卡号)

虽然IC卡通常用于实施更复杂的安全策略,但在某些简化配置下,门禁系统也可能只验证其唯一的ID,而不涉及分区信息的验证。这种情况下,验证过程类似于ID卡,但基于IC卡的技术特性:

验证过程

  • 用户刷卡时,读卡器激活IC卡并读取其UID。
  • 读卡器将UID发送至后台门禁控制系统。
  • 控制系统查询数据库,根据接收到的UID查找对应的用户权限记录。
  • 如果数据库中存在匹配的UID且该UID具有当前门禁点的通行权限,控制系统指令电子锁开启,允许通行;否则,保持锁定状态,拒绝通行。
验证ID+分区信息

这种验证方式除了验证卡片的ID外,还会检查卡片中存储的额外分区信息,以实现更精细化的权限管理。常见于IC卡(智能卡)系统中,尤其是Mifare系列等可编程、带存储区的RFID卡。验证过程更为复杂:

验证过程

  • 用户刷卡时,读卡器同样先激活卡片并读取其UID。
  • 读卡器随后与控制系统通信,请求对特定扇区进行读写操作。
  • 控制系统根据预先设定的访问规则,向读卡器发送相应扇区的密钥。
  • 读卡器使用密钥尝试访问卡片的指定扇区,读取其中存储的权限数据(如用户ID、访问级别、有效时间段、特定门禁点的许可等)。
  • 控制系统接收到读卡器返回的分区数据后,综合判断持卡人是否具备当前门禁点、当前时间等条件下的通行权限。
  • 如果验证通过,控制系统命令电子锁开启;否则,维持门禁关闭。

iPhone

前提条件

确认自己的iPhone型号支持NFC功能。自iPhone 6及后续机型起,大部分iPhone都内置了NFC芯片,但早期的iPhone的NFC功能不完整,可能支持出现意外问题。

启用NFC:

  1. 打开“设置”应用程序。
  2. 滚动找到并点击“Wallet & Apple Pay”(钱包与Apple Pay)。
  3. 在此界面中,确保“NFC”或“Near Field Communication”选项已开启。

苹果官方并不支持直接复制或模拟非合作的实体门禁卡

尽管iPhone具备NFC功能,但其官方系统对非合作门禁卡的复制或模拟支持相当有限,尤其是在非最新版本的iPhone上。

不过,随着时间推移和技术发展,苹果可能会逐步放宽对NFC功能的使用限制,特别是在某些特定市场或针对特定类型的非加密门禁卡。高情商的说法是:未来可期,关注未来的苹果的放开NFC功能的举动。

对于只验证ID的门禁,可借用公交卡来充当门禁卡

  1. 开通公交卡

    • 打开iPhone上的“ Wallet”(钱包)应用。
    • 点击右上角的“+”按钮,选择“添加卡片”。
    • 在提供的列表中,选择自己所在城市的公交卡(如适用,可以选择“交通卡”或类似选项)。
    • 根据屏幕提示完成卡片的添加过程,可能包括同意条款、充值(某些地区可能提供免费开卡服务)等。
  2. 将公交卡用于门禁

    • 联系物业或门禁系统管理员,询问是否支持将公交卡作为门禁卡使用。如果支持,他们通常会告知具体的添加流程和可能需要的费用(一般视同新办一张门禁卡的费用)。
    • 物业会让你在门禁读卡器上实际刷一下iPhone中的公交卡,以便系统捕捉到卡片信息并完成注册。

安卓

前提条件

现在安卓手机无论高端还是低端,一般都是标配了NFC功能。

开启NFC:

  1. 打开手机的“设置”应用。
  2. 搜索或滑动找到“NFC”或“近场通信”设置项。
  3. 如果关闭,点击开关将其开启。

创建空白卡,然后去找物业写卡(支持加密卡、非加密卡,物业可能收费)

打开钱包或其他支持创建空白卡的应用
  1. 找到并打开手机预装的“钱包”应用(或其他支持创建空白卡功能的官方钱包应用)。
创建空白卡
  1. 在钱包主界面,找到并进入“卡包”或“钥匙”等相关选项。
  2. 点击“添加”、“+”或“添加更多卡片”等按钮,寻找“门禁卡”、“智能卡”或“空白卡”创建选项。
  3. 选择“创建空白卡”功能。此时,系统可能会提示你确认操作,并告知你需要后续找物业写卡。
保存并准备写卡
  1. 按照提示完成空白卡的创建过程。创建后,应该能在卡包列表中看到新创建的空白卡。
  2. 记录或截图空白卡的相关信息(如卡号、写卡指引等),以便向物业说明和展示。
前往物业处写卡
  1. 携带手机和必要的身份证明(如物业要求)前往物业管理处。
  2. 向物业工作人员说明你希望通过手机NFC功能写入门禁卡信息,并出示已创建的空白卡。
  3. 物业工作人员可能会收取费用,一般等同于新办一张门禁卡的价格。
  4. 工作人员会在他们的门禁系统后台或专用写卡设备上操作,可能需要你提供空白卡的详细信息。
手机写卡授权
  1. 根据物业的指示,将手机置于写卡设备的指定位置(通常与实体卡写入时相同的位置),确保手机NFC感应区接触良好。
  2. 工作人员在系统中启动写卡流程。此时,你的手机屏幕上可能会自动跳转至相应的写卡界面,或者需要你手动打开钱包应用,进入“刷卡”、“开门”或空白卡详情页,点击“去写卡”等按钮进入写卡模式。
  3. 写卡过程中请保持手机稳定,直到物业工作人员确认写卡成功。

用手机复制实体门禁卡(只支持非加密卡)

打开钱包应用并准备复制
  1. 找到并打开手机预装的“钱包”应用(或其他支持创建复制实体卡功能的官方钱包应用)。
  2. 在钱包主界面,找到并进入“卡包”或“钥匙”等相关选项。
  3. 点击“添加”、“+”或“添加更多卡片”等按钮,寻找“门禁卡”、“智能卡”或“空白卡”创建选项。
  4. 在应用内找到“复制门禁卡”、“模拟门禁卡”或类似功能选项,点击该功能选项。
读取和复制非加密门禁卡信息
  1. 将非加密的实体门禁卡紧贴手机背部的NFC感应区域。
  2. 按照钱包应用提示进行读卡操作。钱包应用会尝试读取并解析门禁卡的ID号和其他相关信息(如非加密的IC卡的扇区数据)。
  3. 按照提示完成门禁卡复制过程。应用会将读取到的门禁卡信息保存为虚拟门禁卡。

手机可以仅复制加密卡的ID,借助写卡器完成完整卡片信息的写入

前提条件:有些新版的钱包软件对于加密卡不会直接失败,而是可以选择只复制ID

有些新版的钱包软件对于加密卡不会直接失败,而是可以选择只复制ID。那么则可以使用本方法。

否则只能参考下文方法,借助空白卡来实现复制ID信息。

打开钱包应用并准备复制
  1. 找到并打开手机预装的“钱包”应用(或其他支持创建复制实体卡功能的官方钱包应用)。
  2. 在钱包主界面,找到并进入“卡包”或“钥匙”等相关选项。
  3. 点击“添加”、“+”或“添加更多卡片”等按钮,寻找“门禁卡”、“智能卡”或“空白卡”创建选项。
  4. 在应用内找到“复制门禁卡”、“模拟门禁卡”或类似功能选项,点击该功能选项。
读取和复制加密门禁卡的ID信息
  1. 将加密的实体门禁卡紧贴手机背部的NFC感应区域。
  2. 钱包应用会提示该门禁卡为加密卡,询问是否只复制ID(并提示只复制ID可能无法正常使用门禁卡)?选择“是”,只复制ID卡。
通过写卡器读取实体门禁卡信息
  1. 将写卡器通过USB接口连接到电脑,安装必要的驱动程序(如附带光盘或从官网下载)。
  2. 打开写卡器配套的软件或第三方读写软件(如支持对应卡型的专业读写工具)。
  3. 将原门禁卡放置在写卡器感应区域内,按照软件提示读取卡片的完整信息(ID号及分区信息)。
通过写卡器将完整门禁卡信息写入手机
  1. 找到并打开手机预装的“钱包”应用(或其他支持创建复制实体卡功能的官方钱包应用)。
  2. 在钱包主界面,找到并打开刚才复制的门禁卡(仅复制了ID)。
  3. 将手机置于写卡器感应区域内,执行写入操作。
  4. 软件会将原门禁卡的完整信息(ID号及分区信息)写入手机的那张门禁卡中。

手机无法复制加密卡,借助空白卡写入ID信息,再复制给手机,后续步骤同前

前提条件:手机复制加密卡会提示无法复制加密卡,然后失败

按照上文“用手机复制实体门禁卡”的方法进行复制加密卡,会提示失败并退出复制程序。故,上文的方法均不可用。

通过写卡器读取实体门禁卡的ID
  1. 将写卡器通过USB接口连接到电脑,安装必要的驱动程序(如附带光盘或从官网下载)。
  2. 打开写卡器配套的软件或第三方读写软件(如支持对应卡型的专业读写工具)。
  3. 将原门禁卡放置在写卡器感应区域内,点击“只复制ID”按钮,复制实体卡的ID。
通过写卡器将ID写入空白卡
  1. 准备一张可重复写入的空白IC卡。
  2. 将空白卡置于写卡器感应区域内,执行“仅写入ID”操作。
  3. 软件会将原门禁卡的ID写入空白卡中。
打开钱包应用并准备复制
  1. 找到并打开手机预装的“钱包”应用(或其他支持创建复制实体卡功能的官方钱包应用)。
  2. 在钱包主界面,找到并进入“卡包”或“钥匙”等相关选项。
  3. 点击“添加”、“+”或“添加更多卡片”等按钮,寻找“门禁卡”、“智能卡”或“空白卡”创建选项。
  4. 在应用内找到“复制门禁卡”、“模拟门禁卡”或类似功能选项,点击该功能选项。
读取和复制写入ID的卡
  1. 将写入ID的卡紧贴手机背部的NFC感应区域。
  2. 按照钱包应用提示完成卡片复制过程。应用会生成一张只含有ID信息的虚拟门禁卡。
通过写卡器读取实体门禁卡信息
  1. 将原门禁卡放置在写卡器感应区域内,按照软件提示读取卡片的完整信息(ID号及分区信息)。
通过写卡器将完整门禁卡信息写入手机
  1. 找到并打开手机预装的“钱包”应用(或其他支持创建复制实体卡功能的官方钱包应用)。
  2. 在钱包主界面,找到并打开刚才复制的门禁卡(仅复制了ID)。
  3. 将手机置于写卡器感应区域内,执行写入操作。
  4. 软件会将原门禁卡的完整信息(ID号及分区信息)写入手机的那张门禁卡中。

写卡器读取加密卡失败的处理方式

借助写卡器复制加密卡的技术原理

写卡器自带利用漏洞破解加密卡的功能,当写卡器提示读取完毕且所有分区验证通过时,其实已经是完成了解密,读取的内容已经是解密后的明文,故可以像普通非加密卡一样完成后续的写入和复制卡片操作。

写卡器读取加密卡失败,可以尝试“完全解密”按钮

如果写卡器读取加密卡失败,说明写卡器没能成功解密加密卡的内容。这时可以尝试使用“完全解密”按钮让写卡器通过暴力遍历的方式来进行解密。但这种方式费时费力,很难在有限的时间内取得进展,如果一直无法完成解密,那么就无法按照上述方式进行复制加密卡,只能尝试他法,比如物理逃课方式。

物理逃课方式

对于门禁卡是ID卡、或者iPhone遇到了同时验证ID、分区信息的门禁卡的情况,均无法将手机直接作为门禁卡使用。

  1. 购买所需设备

    • ID卡或IC卡贴片:根据门禁卡类型(ID卡或IC卡),购买对应的贴片。这些贴片通常是薄型、柔韧的RFID标签,设计成可贴附在手机背面,不影响NFC功能和无线充电。
    • 写卡器:选购与门禁卡类型匹配的读写器,用于读取原门禁卡信息并写入贴片中。对于ID卡,可能需要专门的ID卡读写器;对于IC卡,需选择支持相应IC卡标准(如Mifare Classic、DESFire等)的读写器。(某宝上购买一般几十块钱就可以买到一个同时支持IC卡和ID卡操作的读写器。)
  2. 连接写卡器与电脑

    • 将写卡器通过USB接口连接到电脑,安装必要的驱动程序(如附带光盘或从官网下载)。
  3. 读取原门禁卡信息

    • 打开写卡器配套的软件或第三方读写软件(如支持对应卡型的专业读写工具)。
    • 将原门禁卡放置在写卡器感应区域内,按照软件提示读取卡片的ID号(对于ID卡)或ID号及分区信息(对于IC卡)。
  4. 写入数据

    • 将贴片置于写卡器感应区域内,执行写入操作。
    • 软件会将原门禁卡的ID号(ID卡)或ID号及分区信息(IC卡)写入贴片中。
  5. 测试门禁功能

    • 带着贴片前往门禁系统,将贴片贴近读卡器,测试能否正常开门。
  6. 贴附贴片

    • 清洁手机背面,确保无尘、无油污。
    • 将写入门禁卡信息的贴片贴附在手机背面适当位置,确保不遮挡NFC天线和无线充电线圈区域。

相关文章:

使用iPhone/安卓手机代替门禁卡

文章目录 基础知识ID卡和IC卡ID卡技术IC卡技术IC卡加密方式手机NFC只能模拟IC卡,而不支持ID卡电梯卡可能使用滚动码验证方式,不支持使用手机模拟 (IC类型)门禁卡验证方式仅验证ID(卡号)验证ID分区信息 iPho…...

UE4_动画基础_角色的缩放

以第三人称模板进行制作。 一、首先为角色缩放新建粒子效果 1、新建niagara system,重命名为NS_Shrink。 2、双击打开设置参数: 发射器重命名: Emitter State: 发射器一次喷发数量: 粒子初始大小,生命周…...

【云开发笔记No.20】中台架构的分类

中台现在成了一个到处都在说的词了,甚至在组织架构中,弄几个万金油,也说有了一个中台支撑部门。一方面是滥用,另一个方面,也说明确实有它的作用和意义。 在云计算和数字化转型日益盛行的今天,中台架构已成…...

【leetcode面试经典150题】18.整数转罗马数字(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…...

NLopt

非线性优化–NLopt (nonlinear optimization)是一个免费的开源的库,提供了很多种非线性优化算的使用接口。 1、其中非常大的优势就是提供多种支持的语言,包括C/ C/ Julia/ Python/ R/ Fortran/ Lua/ OCaml/ Octave等都支持 1. 区别 **COBYLA&#xff0…...

三防笔记本丨工业笔记本电脑丨助力测绘行业的数字化转型

测绘行业测绘行业一直是高度技术化的领域,其重要性在于为建设、规划和资源管理提供准确的地理数据。然而,随着技术的发展,传统的测绘方法已经难以满足对数据精度和实时性的要求。因此,测绘行业正逐渐向数字化转型,采用…...

创建spring boot项目

使用https://start.aliyun.com/ 创建一个spring boot项目 1、打开https://start.aliyun.com/&#xff0c;获取代码 2、解压下载后文件&#xff0c;使用ide打开&#xff0c;pom。xml文件添加&#xff0c;install一下 <dependency><groupId>org.springframework.bo…...

Mongodb字段更新操作符$currentDate

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第54篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。 本文基于Mongodb的官方文档&#xff0c;整理了Mongodb字段更新操作符$currentDate的定义&#xff…...

通信安全之数据加密

数据安全的需求如今越来越重要&#xff0c;本篇简单举例给日常的TCP/UDP通信加密&#xff0c;至少能让想干坏事的崽犯罪的成本更高一些&#xff08;如果会一些BPF的&#xff0c;可能难不住这些崽&#xff09;&#xff0c;能让我们的数据更安全一点。 经典TCP socket编程 下面…...

花一分钟简单认识 CSS 中的规则 —— 级联层 @layer

layer 简介&#xff1a; 声明级联层时&#xff0c;越靠后优先级越高。不属于任何级联层的样式&#xff0c;将自成一层匿名级联层&#xff0c;并置于所有层之后 —— 级别最高。 用法一&#xff1a;在同一文件中 layer base, special; layer special {/* 优先 */li { color: …...

K8s学习三(Pod与探针)

深入学习Pod Pod配置文件 写一个自己的配置文件,nginx-po.yaml apiVersion: v1 #api文档版本 kind: Pod #资源类型对象&#xff0c;也可以配置为像Development&#xff0c;StatefulSet这一类的对象 metadata: # Pod相关的元数据&#xff0c;用于描述Pod的数据name: nginx-po…...

leetcode - 678. Valid Parenthesis String

Description Given a string s containing only three types of characters: ‘(’, ‘)’ and ‘*’, return true if s is valid. The following rules define a valid string: Any left parenthesis ( must have a corresponding right parenthesis ). Any right parenth…...

索尼相机照片清理软件

在使用索尼相机拍摄照片的时候有时我们需要同时拍摄JPG格式和RAW格式&#xff0c;这在后期选图的时候给我们带来一些麻烦。我们固然可以选用Br来管理照片&#xff0c;但是现在我们可以有一个更轻量的软件&#xff08;8.8MB&#xff09;来做到一部分功能。 我们将照片从SD卡导出…...

比赛记录:Codeforces Global Round 25 A~E (猜猜题场)

传送门:CF [前题提要]:其实这场打的不是很好.A题一个sb错误看不出来,50min后才过,B题上来就Wa了一发,C题用了没必要的线段树,D题刚开始被60诈骗,一直在想按位考虑.幸好赛时猜出了E,然后又猜出来D,本来掉大分变成上大分…但是这场前几题大都是猜猜题,所以本来不想写题解的.但是…...

Windows系统安装OpenSSH结合VS Code远程ssh连接Ubuntu【内网穿透】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-AwzyR2lkHKjD9HYl {font-family:"trebuchet ms",verdana,arial,sans-serif;f…...

Svg Flow Editor 原生svg流程图编辑器(五)

系列文章 Svg Flow Editor 原生svg流程图编辑器&#xff08;一&#xff09; Svg Flow Editor 原生svg流程图编辑器&#xff08;二&#xff09; Svg Flow Editor 原生svg流程图编辑器&#xff08;三&#xff09; Svg Flow Editor 原生svg流程图编辑器&#xff08;四&#xf…...

数字晶体管选型参数,结构原理,工艺与注意问题总结

🏡《总目录》 目录 1,概述2,工作原理2.1,AND 门(与门),2.2,OR 门(或门):2.3,NOT 门(非门):2.4,NAND 门(与非门):2.5,NOR 门(或非门):3,结构特点3.1,TTL(Transistor-Transistor Logic)晶体管...

lua学习笔记9(字典的学习)

print("********************字典的学习***********************") a{["凌少"]"傻逼",["我"]"天才",["age"]24,["daihao"]114514,["8848"]20000} --访问单个变量 print(a["凌少"])…...

第六篇: 3.5 性能效果 (Performance)- IAB/MRC及《增强现实广告效果测量指南1.0》

​​​​​​​ 翻译计划 第一篇概述—IAB与MRC及《增强现实广告效果测量指南》之目录、适用范围及术语第二篇 广告效果测量定义和其他矩阵之- 3.1 广告印象&#xff08;AD Impression&#xff09;第三篇 广告效果测量定义和其他矩阵之- 3.2 可见性 &#xff08;Viewability…...

mysql学习笔记NO.2

Java操作数据库、表笔记 1.创建数据库 创建数据库的步骤如下&#xff1a; 导入所需的Java数据库连接驱动&#xff08;如MySQL驱动&#xff09;。使用JDBC连接到数据库。执行SQL语句创建数据库。 import java.sql.Connection; import java.sql.DriverManager; import java.…...

C++11:lambda表达式 包装器

C11&#xff1a;lambda表达式 & 包装器 lambda表达式包装器functionbind lambda表达式 在C98中&#xff0c;如果想对一个结构体数组使用sort排序&#xff0c;那么我们就需要自己些仿函数。 比如以下结构体&#xff1a; struct Goods {string _name; // 名字double _pric…...

Node.js HTTP/2 CONTINUATION 拒绝服务漏洞(CVE-2024-27983)

Node.js 是开源、跨平台的 JavaScript 运行时环境。CONTINUATION泛洪攻击被发现存在于多个HTTP/2协议实现中。 在受影响版本中&#xff0c;由于Node.js针对HTTP/2协议的实现不当&#xff0c;未正确处理多个CONTINUATION帧的情况&#xff0c;在node::http2::Http2Session::~Htt…...

YOLOV8 + 双目测距

YOLOV8 双目测距 1. 环境配置2. 测距流程和原理2.1 测距流程2.2 测距原理 3. 代码部分解析3.1 相机参数stereoconfig.py3.2 测距部分3.3 主代码yolov8-stereo.py 4. 实验结果4.1 测距4.2 测距跟踪4.3 测距跟踪分割4.4 视频展示 相关文章 1. YOLOv5双目测距&#xff08;python&…...

前端:SVG绘制流程图

效果 代码 html代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>SVG流程图示例</title><style>/* CSS 样式 */</style><script src"js/index.js"></script…...

【Linux系列】如何确定当前运行的是 RHEL 9 还是 RHEL 8?

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

vscode开发java的插件和配置

推荐插件 .vscode/extensions.json {"recommendations": ["redhat.fabric8-analytics","ms-azuretools.vscode-docker","vscjava.vscode-java-pack","eamodio.gitlens","obkoro1.korofileheader","redhat.j…...

Mysql启动报错:本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止

Mysql启动报错&#xff1a;本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止 文章目录 Mysql启动报错&#xff1a;本地计算机上的mysql服务启动后停止,某些服务在未由其他服务或程序使用时将自动停止1. 备份mysql的data文件夹2. 重新构建 Wind…...

WPF程序添加托盘图标

程序添加托盘图标 UI层 //添加handycontrol的引用xmlns:hc"https://handyorg.github.io/handycontrol"//添加NotifyIcon图标 实现单击 双击 二级菜单点击功能<hc:NotifyIconText"通知"Token"Info"><hc:NotifyIcon.ContextMenu><…...

工业4g路由器联网后迅速掉线是什么原因?

工业4G路由器连接上网后迅速掉线可能是由多种因素造成的。以下是一些建议的检查和解决步骤&#xff1a; 1、信号问题&#xff1a; 信号强度&#xff1a;检查工业路由器信号强度指示灯&#xff0c;如果信号弱&#xff0c;尝试移动路由器位置或添加外部天线来增强信号。 网络拥…...

腾讯云4核8G服务器12M带宽646元1年零3个月,4C8G使用场景说明

腾讯云4核8G服务器多少钱&#xff1f;腾讯云4核8G轻量应用服务器12M带宽租用价格646元15个月&#xff0c;活动页面 txybk.com/go/txy 活动链接打开如下图所示&#xff1a; 腾讯云4核8G服务器优惠价格 这台4核8G服务器是轻量应用服务器&#xff0c;详细配置为&#xff1a;轻量4核…...

网站流量到底怎样赚钱的/做seo要投入什么

C语言提供了scanf函数&#xff0c;用于给程序输入数据。用户可以通过键盘&#xff0c;给指定的变量输入数据。printf函数是给终端输出数据&#xff0c;scanf函数是从终端接收&#xff08;获取&#xff09;用户的输入数据。 scanf函数的格式如下&#xff1a; int scanf (const…...

宁波建设集团股份有限公司官网/网站优化比较好的公司

描述 sudoers配置文件由两种内容组成:别名(基本变量)和用户说明(user specification)(定义了谁能运行什么).sudoers的语法将在下面用扩展的巴科斯-诺尔范式(Extended Backus-Naur Form,EBNF)描述.如果您不知道什么是EBNF是什么的话也请不要放弃,事实上它很简单,并且下面用它作的…...

学校网站查询/苏州网站建设书生

一、PSP T名称C内容ST开始时间ED结束时间中断时间实际时间学习重要知识点MAP容器、vector9月15日9:309月15日12:0030120排序算法9月15日13:159月15日14:001035流文件9月15日14:009月15日14:30525C其他知识9月15日14:309月15日16:003060编程 编写代码9月15日18:009月15日23:00…...

写wordpress博客赚钱/百度应用搜索

String和StringBuffer的区别&#xff0c;网上资料可以说是数不胜数&#xff0c;但是看到这篇文章&#xff0c;感觉里面做的小例子很有代表性&#xff0c;所以转一下&#xff0c;并自己做了一点总结。 在java中有3个类来负责字符的操作。 1.Character 是进行单个字符操作的&…...

linux wordpress 中文/百度云

研究了四天linux内核移植和文件系统制作&#xff0c;总算移植成功&#xff0c;在这里和大家分享一下&#xff0c;我是一个初学者&#xff0c;有不对的地方&#xff0c;请大家指点。参考网友的资料&#xff1a;http://blog.chinaunix.net/u3/104564/sho ... 91186.htmlhttp://ww…...

艺术字体在线生成器转换器/江北seo页面优化公司

所谓AJAX就是指:页面在不刷新,不跳转的情况下,利用XMLHttpRequest对象像服务器发送HTTP请求.也就是JS的网络化. 早些年是通过HTTP发送204<例:header(http/1.1 204 No-Content);>,ifram框架,src加载等方法也达到页面在不刷新,不跳转的情况下向服务器请求. AJAX的核心就是 …...