id nfc模拟_手机NFC也可以刷ID卡门禁?无聊测试居然成功了

前段时间换了个K20pro,有NFC功能后手又痒了,就想折腾一下NFC的日常使用。

小区的门禁前几个月刚换成了亲邻开门,可以用微信小程序开门,但每次都要拿手机出来点几下(特别是手机提着东西的时候),还是没有手机接触式开门方便。

拿出家里的门禁卡放手机背面,没反应,我NFC应该没问题呀!换另外一台华为手机还是没反应!上网一查,我家的门禁卡居然是ID卡!但还是不死心,在小米钱包里虚拟了一张门卡,放到小区门禁读卡器上,也没有反应,感觉这次凉凉了。

小知识:ID卡和IC卡有什么不同

ID卡含固定的编号,无法写,只能读取ID号,I频率为125kHz;

IC卡是能读能写的,能加密,频率13.56MHz。

现在很多手机的NFC都兼容IC卡的频率

既然门禁不行还是要把NFC公交卡搞定吧。跑去电信换了NFC-SIM卡,装了天府通又经过了一番折腾终于搞好了,试了一下还不错,挺方便的。

(关于天府通开卡我会另发一篇文章)

回家的时候手机无意间碰到了门禁读卡器,居然读卡器有反应了!

显示:此卡未授权,请联系管理处。下边还有一串ID:*******!

既然能读了!这下又燃起我手机开门禁的希望了!

马上跑到物业让帮忙加一下,结果手机放到物业的读卡器让还是没有反应!物业的工作人员也说,他们试过手机,手环都加不了。

既然门禁读卡器能够识别,那就说明门禁读卡器支持。只是物业的读卡器不能读取。想起刚才显示的ID号,就让物业帮忙手动输入ID 号(门禁读卡器上显示的号码)。

添加完成以后拿手机到门禁那里一式,立马就开门了。

虽然能开门了,但还是有个问题没有想明白。

门禁读卡器为应该是IC卡+ID卡二合一的。

但是为什么我用小米的虚拟门禁卡就没有反应呢?

突然想到前几天用的手机壳为了能在开车的时候方便,贴了一个车载磁性支架的铁片。拿出手机壳套上,再去刷,果然没有反应了!看来就是这个铁片刚好铁道了NFC的位置上,屏蔽NFC的信号。

拆掉手机壳,切换到小米钱包,果然有反应,直接跳到了虚拟门禁卡的界面。

大家一定要注意,NFC芯片的位置最好不要有金属阻挡。

至此总结一下:

手机能刷开ID卡的门禁,并不是应为手机或者NFC-SIM卡能识别频率为125kHz的信号,而是由于小区的门禁读卡器是用的IC卡加ID卡二合一的读卡器。

对于还是ID卡门禁的朋友可以建一张虚拟门禁卡,或者换一张NFC-SIM卡,拿到门禁读卡器那里去试试,看读卡器有没有反应。如果有反应的话,那就可以添加进去开门。

如果不行,还有一种方法就是TB上买个超博ID卡贴,让老板帮你复制好,贴到手机背面或者放到手机壳里边就行了。

React Hooks 是 React 16.8 中新增的特性,它可以让你在函数组件中使用 state、生命周期钩子等 React 特性。使用 Hooks 可以让你写出更简洁、可复用且易于测试的代码。 React Hooks 提供了一系列的 Hook 函数,包括 useState、useEffect、useContext、useReducer、useCallback、useMemo、useRef、useImperativeHandle、useLayoutEffect 和 useDebugValue。每个 Hook 都有特定的用途,可以帮助你处理不同的问题。 下面是 React Hooks 的一些常用 Hook 函数: 1. useState useState 是最常用的 Hook 之一,它可以让你在函数组件中使用 state。useState 接受一个初始状态值,并返回一个数组,数组的第一个值是当前 state 值,第二个值是更新 state 值的函数。 ``` const [count, setCount] = useState(0); ``` 2. useEffect useEffect 可以让你在组件渲染后执行一些副作用操作,比如订阅事件、异步请求数据等。useEffect 接受两个参数,第一个参数是一个回调函数,第二个参数是一个数组,用于控制 useEffect 的执行时机。 ``` useEffect(() => { // 这里可以执行副作用操作 }, [dependencies]); ``` 3. useContext useContext 可以让你在组件树中获取 context 的值。它接受一个 context 对象,并返回该 context 的当前值。 ``` const value = useContext(MyContext); ``` 4. useRef useRef 可以让你在组件之间共享一个可变的引用。它返回一个对象,该对象的 current 属性可以存储任何值,并在组件的生命周期中保持不变。 ``` const ref = useRef(initialValue); ref.current = value; ``` 5. useCallback useCallback 可以让你缓存一个函数,以避免在每次渲染时都创建一个新的函数实例。它接受一个回调函数和一个依赖数组,并返回一个 memoized 的回调函数。 ``` const memoizedCallback = useCallback(() => { // 这里是回调函数的逻辑 }, [dependencies]); ``` 6. useMemo useMemo 可以让你缓存一个计算结果,以避免在每次渲染时都重新计算。它接受一个计算函数和一个依赖数组,并返回一个 memoized 的计算结果。 ``` const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]); ``` 以上就是 React Hooks 的一些常用 Hook 函数,它们可以帮助你更好地处理组件状态、副作用、上下文和性能优化等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值