| 设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计 | |||||
|
|||||
|
|||||
|
|||||
byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
if (v == 0x91 || v == 0x92)
digitalWrite(GREEN, HIGH);
else
digitalWrite(RED, HIGH);
……
// 新卡片出现之后再继续执行
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// 读取到卡片序列号之后再执行
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
void PrintPassword() {
unsigned char* hash = MD5::make_hash((char*)mfrc522.uid.uidByte);
//使用 MD5 算法对卡片 UID 生成摘要
char *pwd = (char *) malloc (sizeof(char) * 17);//存放密码的字符串
static const char trans[95] = //转义数组
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890[];',./{}:\"<>?\\|=-+_)(*&^%$#@!~`";
for (int i = 0; i != 16; ++i)
pwd [i] = trans[*(hash + i) % 94];//将 MD5 摘要的转换为强密码字符串
pwd [16] = '\0'; //防止极端条件下的异常
Keyboard.print(pwd); //打印密码
free(hash); //避免内存泄漏
free(pwd);
}
//指示初始化是否正常,读取 RFID 读卡器的版本号。
//在连接异常时返回的版本号不正确,通过红绿 LED 指示工作状态。
byte v = mfrc522.PCD_ReadRegister(mfrc522.VersionReg);
if (v == 0x91 || v == 0x92)
digitalWrite(GREEN, HIGH);
else
digitalWrite(RED, HIGH);
……
digitalWrite(WHITE, HIGH); //黄灯亮指示正在生成密码
毕业66资料站 biye66.com ©2015-2026 版权所有 | 微信:15573586651 QQ:3903700237
本站毕业设计和毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!