自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 day06_终端风险管理

黑名单一般是从服务器下载,如果比较多,要求服务器按顺序排序,然后再下载,接着采用二分法查找。国际 EMV 的 TRM 核心只有底线金额、随机选择、速度检查三项;TVR 随 55 域逐笔上送发卡行,是发卡行风控决策的输入。

2026-08-28 16:30:34 329

原创 Android 面试题大全

提交 → Lint/ktlint 静态检查 → 单元测试 → 构建 AAB/APK → 灰度/内测分发 → Play/Fir 发布 → 崩溃监控(Crashlytics/Sentry)闭环。- 排查:`jstack <pid>` 看 "Found one Java-level deadlock";协议层(RTMP/HLS/HTTP)→ 封装层(FLV/MP4/TS)解封装 → 编码层(H264/AAC)解编码 → 像素/PCM → 渲染(OpenGL/AudioTrack)。

2026-08-28 11:23:17 223

原创 android 面试题

ContextImpl.startActivity → Instrumentation.execStartActivity → AMS.startActivity → 校验权限、创建 ActivityRecord、Pause 当前 Activity → ApplicationThread.scheduleTransaction → ActivityThread.H → LaunchActivityItem → performLaunchActivity(创建 Activity、调用 onCreate)。

2026-08-27 14:14:40 388

原创 day05_持卡人验证

CVM(Cardholder Verification Method)用于验证“用卡的人是否为持卡人本人”,是 EMV 接触式交易流程的第 4 步:Plain Text。

2026-08-27 14:03:34 342

原创 [特殊字符] Android 面试核心知识点全景图

/ 按返回键:B: onPause → A: onRestart → onStart → onResume → B: onStop → onDestroy。override fun onPause() // 部分不可见。override fun onStop() // 完全不可见。// 避免内存泄漏(Handler、内部类、单例持有 Context)override fun onCreate() // 创建。override fun onStart() // 可见。

2026-08-26 14:30:17 198

原创 Kotlin_LiveData

【代码】Kotlin_LiveData。

2026-08-26 13:43:09 235

原创 Kotlin_协程(Android例子)

【代码】Kotlin_协程(Android例子)

2026-08-26 09:52:17 58

原创 kotlin_协程

协程作用域 | 管理协程生命周期,实现结构化并发。常用:`runBlocking`、`CoroutineScope()`。| 协程构建器 | `launch`(无返回值)、`async`(有返回值,通过`await()`获取)。| 挂起函数 (`suspend`) | 可暂停执行而不阻塞线程,结束后自动恢复。| 概念 | 说明。

2026-08-26 09:32:43 193

原创 day04_EMV处理限制2

② | 应用用途控制检查 | 9F07 AUC、5F28 发卡行国家代码 | 9C、9F1A、9F35、9F40 | bit 5 置 1(不允许所请求的服务)| ③ | 应用有效期检查 | 5F24 失效日期(必备)、5F25 生效日期(可选) | 9A 交易日期 | bit 7(已过期)/ bit 6(尚未生效)

2026-08-24 14:07:35 365

原创 day04_EMV处理限制

在交易前,POS终端会对卡片和交易环境进行一系列安全与合规检查,任何一项不通过,都会在。:在联机圈存时,后台会下发加密指令(脚本)更新卡内余额,确保账实相符。:终端时间不是独立检查项,而是作为上述“有效期检查”和“交易日志”的。:终端时间异常,通常会导致有效期检查失败,进而交易被拒。终端时间必须正确设置,否则会导致有效期等检查结果错误。读取卡片AUC中对应的“国内有效”或“国际有效”位。终端首先检查自身环境是“国内”还是“国际”。:指交易处理方式(是否实时联网与后台通信)。读取终端当前日期(系统时间)。

2026-08-24 11:34:21 317

原创 开发网址收藏

本文摘要汇集了多个开发工具与资源,涵盖Android开发(如Jetpack Compose入门、Kotlin在线编辑器、Gradle配置)、企业查询(风鸟平台)、数据解析(JSON、8583报文、X509证书)、HarmonyOS环境配置,以及阿里巴巴图标库、在线文本比对工具等实用链接。重点包括华为开发者学堂、Android官方文档及SoJSON等测试接口,为开发者提供一站式技术参考。

2026-08-21 09:41:57 199

原创 LOG-DDA.txt

该摘要涉及ICBC(中国工商银行)信用卡交易数据,包含交易处理信息、发卡行标识、交易金额等关键字段。其中包含公钥模和指数,用于加密验证。交易数据采用TLV格式编码,涉及商户名称(ICBC PbocCard)、货币代码(CNY)、终端标识等。摘要还包含密文数据块,可能用于交易授权或安全验证。由于技术性较强,完整解析需要专业的支付系统知识。

2026-08-20 14:03:46 234

原创 DDA计算过程

本文通过一个完整的PBOC交易流程实例,详细解析了动态数据认证(DDA)的计算过程。首先介绍了交易初始化阶段的选择支付环境、读取目录记录等步骤,随后重点阐述了DDA验证的三步核心流程:1)使用CA公钥恢复发卡行公钥;2)用发卡行公钥恢复IC卡公钥;3)利用IC卡公钥验证动态签名数据。文中展示了详细的TLV数据解析、RSA解密过程、SHA-1哈希计算等关键步骤,并通过实际数据演示了完整的认证流程,最终实现了DDA验证成功。该过程涉及静态应用数据、公钥证书解析和动态签名验证等多种安全机制。

2026-08-20 13:55:13 35

原创 day03_脱机数据认证

本文摘要: 脱机数据认证(DDA)是采用公钥技术验证卡片数据的安全机制,包含静态(SDA)和动态(DDA)两种形式。DDA通过终端随机数(9F37)和卡片签名实现防篡改与防复制,其核心流程包括:用CA公钥恢复发卡行公钥→恢复IC卡公钥→验证动态签名数据。终端性能通过TLV格式的9F33标签声明(如支付方式支持),交易结果通过5字节TVR(Tag 95)记录各环节状态(1=失败/发生)。关键点包括:DDA防重放攻击机制、终端随机数的签名验证流程,以及终端能力与验证结果的标准化表示方法。

2026-08-20 13:35:32 212

原创 day02_应用选择流程

EMV交易应用选择与数据处理流程摘要 EMV交易中,终端通过SELECT命令选择卡片应用(如Visa),卡片返回含PDOL的FCI数据。终端根据PDOL构造交易参数(金额、货币等),通过GPO命令请求处理选项,可能收到三种响应: 80格式:直接解析AFL(应用文件定位器,4字节/组),指导终端读取记录(如PAN、有效期); 77格式:需解析TLV结构(如TAG 82为AIP,94为AFL); 6985状态字:应用被拒,需重试候选列表。 终端根据AFL循环发送READ RECORD命令,解析TLV格式的记录数

2026-08-12 17:11:43 183

原创 day01_应用选择

摘要(149字): 应用选择是支付交易中终端与卡片协商支付应用(如银联贷记/借记)的关键阶段,通过SELECT PSE和READ RECORD命令获取卡片支持的AID列表,并按优先级(完全匹配>部分匹配)或人工指定选择应用。核心输出为完整AID及FCI数据(含PDOL、发卡行证书等),为后续GPO阶段提供参数。流程要点包括:1) 先读PSE目录再匹配AID;2) SELECT必须用卡片返回的完整AID;3) 6A83为目录读取终止信号;4) 人工/智能选择由终端配置决定。该阶段直接影响后续脱机认证与交易处理

2026-08-12 17:10:35 167

原创 EMV_应用选择举例

摘要:本文描述了银行卡应用选择与初始化的完整流程。首先通过SELECT PSE命令获取支付系统环境信息,解析TAG_88值;然后通过读记录命令循环读取应用目录文件,匹配终端AID并建立候选列表。选定AID后,根据PDOL(TAG_9F38)构造GPO命令进行应用初始化,最终获取应用交互特征(AIP)和应用文件定位器(AFL)。整个过程包含APDU命令交互、TLV数据解析和终端应用匹配等关键步骤,展示了金融IC卡交易前期的标准化处理流程。

2026-08-12 17:07:15 177

原创 EMV应用选择、初始化、读取数据

本文详细记录了PBOC信用卡(AID: A000000333010102)的EMV交易流程解析。通过SELECT PSE命令选择支付环境后,依次读取目录记录、选择应用、获取处理选项,并提取关键数据:包括持卡人信息(PAN、姓名)、应用控制参数(AIP、AFL)、发卡行公钥证书、ICC公钥参数等。特别分析了DDA动态认证过程,包括终端生成随机数挑战(EB5ACED2)和卡片返回的96字节签名响应(8060...9E81)。交易过程中解析了SFI文件结构,验证了卡片支持SDA/DDA认证和持卡人验证功能。

2026-08-12 16:56:56 210

原创 如何将VSCode中C项目工程运行到开发板上

本文记录了将LVGL界面应用从VSCode模拟器迁移到开发板的过程。首先配置编译环境,包括导出SVN预编译工具链和SDK到指定目录。然后基于hellolvgl模板进行工程配置,修改CMakeLists.txt和main.c文件,调整build.bat脚本使其能正确生成可执行文件。最后通过adb将编译产物推送到开发板并赋予执行权限。虽然当前屏幕显示存在问题,但已完成了从模拟环境到真实硬件环境的完整移植流程,为后续调试奠定了基础。

2025-11-25 10:43:47 973

原创 在 VSCode 中:Label标签中添加时间显示

摘要:本文介绍了在嵌入式GUI中实现实时时间显示功能的代码实现。通过在events_init.c中添加事件处理函数,当屏幕加载/卸载时分别启动/停止时间更新。核心功能包括:1)使用lv_timer创建1秒间隔的定时器;2)通过localtime获取系统时间并格式化显示;3)提供start_time_update和stop_time_update函数控制时间更新。代码实现了简洁的"%H:%M"时间格式显示,并确保初始显示不空白。相关函数声明需添加到events_init.h头文件中。

2025-11-21 11:37:39 276

原创 Windows C下使用winsock库实现tcp客户端通信

本文介绍了使用Winsock库实现TCP客户端通信的步骤。首先初始化Winsock库并创建TCP套接字,然后配置服务器地址信息(包括地址族、IP和端口),接着建立连接并实现数据收发功能(使用send和recv函数)。最后关闭连接并清理资源。文中提供了完整的C语言代码实现,包括错误处理机制,演示了从连接服务器到发送"Hello, server!"消息并接收响应的完整流程。该程序适用于基本的TCP客户端开发场景。

2025-11-17 13:33:19 344

原创 在 VSCode 中:lvgl库函数和lv_drivers以静态链接库的形式参与c应用项目的运行

文章摘要:本文介绍了从动态链接库转为静态链接库方式加载LVGL和lv_drivers的实现过程。首先展示了原有的模拟器运行效果,然后说明了改用静态库的原因(便于系统升级和减小应用体积),详细描述了环境搭建步骤:包括MinGW安装、SDL2配置、prebuilts部署等。重点阐述了在自有工程中的实现方法:创建lib目录存放静态库、配置CMakeLists.txt文件、替换关键配置文件等。最后解决了TFT模拟器显示异常问题,通过替换lv_conf.h和lv_drv_conf.h文件实现了预期效果。整个过程为嵌入

2025-11-13 15:32:04 1023

原创 在GUi-Guider中:创建应用模版,分析模版代码

文章摘要:本文介绍了通过官方demo学习应用开发的实用方法。主要内容包括:1)效果展示部分强调通过逆向学习已完成的代码和界面来掌握设计技巧;2)界面分析环节详细说明如何通过鼠标悬停获取控件信息,并依次查看各类控件的属性配置;3)代码分析部分指出导入工程时需要修改的关键位置,建议从首页开始逐步分析结构体中的UI定义。全文提供了从界面到代码的完整学习路径。

2025-11-10 17:19:53 367

原创 在GUi-Guider中:加标识 Event Bubble的作用

GUIGuider中的EventBubble(事件冒泡)机制允许子控件事件向上传递给父容器处理,简化了事件管理。其优势包括:单一父容器事件处理替代多个子控件绑定、支持动态内容统一处理。典型应用如列表项点击,只需为父容器设置事件监听,子元素(图片/标签/按钮)通过勾选属性面板的EventBubble选项即可实现事件传递。该机制显著提升开发效率,尤其适用于含动态元素或复杂嵌套的GUI场景。

2025-11-07 15:08:07 274

原创 在 VSCode 中:修改快捷键

VSCode修改删除行快捷键方法:针对Ctrl+Shift+k与输入法冲突问题,可通过"文件-首选项-键盘快捷方式",将删除行快捷键修改为习惯的Ctrl+d。操作步骤简单,满足个性化需求。

2025-11-06 17:14:14 401

原创 在 VSCode 中:引入开源cJSon解析库+示例demo

本文介绍了在VSCode中使用cJSON库处理JSON数据的完整流程。首先从GitHub获取cJSON库文件,配置项目路径后,通过五个实例演示了cJSON的核心功能:1)创建包含嵌套结构和数组的JSON对象;2)解析JSON字符串并提取数据;3)处理复杂嵌套JSON;4)操作JSON数组;5)JSON文件读写操作。文中提供了详细的代码实现,包括创建用户信息JSON、解析产品数据、处理公司部门结构等示例,并封装了安全的JSON解析和打印工具函数。最后展示了在终端运行后的输出效果。

2025-11-06 15:04:26 956

原创 在 VSCode 中:如何主动生成c_cpp_properties.json文件

摘要:本文介绍在VSCode中生成c_cpp_properties.json配置文件的步骤。首先需确认该文件不会自动创建,必须手动配置。具体操作:1)打开命令面板(Ctrl+Shift+P);2)输入"EditConfigurations(UI)"命令;3)若无此命令,需先安装Microsoft的C/C++扩展;4)完成安装后即可生成配置文件。整个过程解决了C/C++开发环境配置的基本需求。

2025-11-06 14:15:35 1676

原创 在VSCode中:解决终端输出中文乱码问题

VSCode中C语言源文件添加中文注释出现乱码的解决方法。当在代码中添加包含中文的注释或字符串时,显示会出现乱码问题。解决方法是:在项目工程的.vscode/settings.json配置文件中添加特定编码设置。修改后重新编译运行,中文内容即可正常显示,解决了原本的乱码问题。该方法简单有效,适用于VSCode环境下处理中文编码问题。

2025-11-06 14:03:26 1196

原创 C语法: 知识点持续更新中...

C语言中函数声明规则:1)函数定义在使用前时可隐式声明,但不推荐;2)定义在使用后或跨文件时必须显式声明,最佳实践是始终使用头文件声明。typedef作用:为结构体创建简洁的类型别名(如lv_ui替代struct lv_ui),提升代码可读性。建议将typedef与头文件声明结合使用,遵循现代C语言开发规范。

2025-11-05 11:35:26 296

原创 在VSCode+Guider基础上:拖动滑条控件,显示滑条数值

本文介绍了在LVGL 8.3版本中实现滑动条控件的步骤:首先从指定网址查找8.3版本的示例代码,复制后使用VSCode进行修改,最终实现拖动滑条时数值实时变动的效果。重点强调了必须使用对应8.3版本的API,否则会出现错误。文中包含四个主要操作步骤,从查找代码到最终运行测试,并附有效果图示说明。

2025-11-04 17:27:18 242

原创 在VSCode+Guider基础上:实现页面跳转

本文介绍使用GUI-Guider创建多页面系统的步骤。首先新建项目并创建5个页面(1个主页面+4个子页面),然后设计各页面组件:主页面含标题和5个功能按钮,子页面均包含返回按钮和特定组件。接着配置页面跳转逻辑,为按钮添加Clicked事件实现页面切换。特别提醒中文显示需选择SourceHanSerifSC_Regular字体避免乱码。最后将工程导出到VSCode模拟器运行调试。该教程完整演示了从页面创建、设计到交互实现的GUI开发流程。

2025-11-03 15:06:58 628

原创 在VSCode+Guider基础上 运行Button圆角demo

本文介绍了一个基于LVGL图形库的屏幕界面设置代码。主要功能是在480x272像素的屏幕上创建GUI界面,包含基础屏幕设置和按钮控件样式配置。代码实现了两种风格的按钮创建:标准灰色渐变按钮和红色按钮,并为按钮添加了按下状态效果。其中,setup_scr_screen函数负责屏幕初始化,style_init函数定义按钮样式,包括圆角、背景色、边框等属性。该代码使用LVGL的样式系统进行界面设计,创建了响应式按钮元素,并支持自定义事件处理,为嵌入式设备提供了灵活的用户界面解决方案。

2025-10-31 16:57:35 310

原创 在VSCode+Guider基础上 运行Button点击事件Demo

本文介绍了如何在LVGL 8.3版本中查找和使用按钮点击事件代码的方法。作者建议新手通过"站在巨人肩膀上"的方式学习,具体步骤包括:在LVGL官网查找8.3版本API示例代码,从GitHub复制代码到VSCode中进行修改,最终实现点击按钮数字累加的效果。文章特别强调了版本匹配的重要性,并提供了示例图片说明操作过程。该方法适合初学者快速掌握基础交互功能开发。

2025-10-31 15:37:26 194

原创 在VSCode+Guider基础上运行Hello World :如何移植官方小demo进自已工程代码

本文介绍了在VSCode中配置LVGL模拟环境的后续操作步骤。首先提供了前两篇参考文章的链接,并列出相关手册资料(包括中文/英文版LVGL手册和Gui-Guider使用指南)。主要内容为如何在工程中实现显示"HelloWorld":从GitHub获取代码后,在VSCode工程中修改gui-guider.h和setup_src_screen.c文件,最后展示运行效果。文章配有操作截图指导,帮助读者快速完成代码移植和显示效果验证。

2025-10-31 14:07:22 357

原创 VSCode版LVGL模拟器:移植Guider生成的代码

本文介绍了将GUI-Guider生成的LVGL界面代码移植到VSCode模拟器的完整流程。主要包括:1)安装GUI-Guider 1.7.0并创建1.8.3版本工程;2)导出RT-Thread格式代码;3)在VSCode项目中配置头文件路径和CMakeLists;4)解决编译错误和CMake配置问题。文中提供了多个参考链接,包括VSCode安装、LVGL模拟器移植等详细教程。特别提醒需注意版本兼容性,并给出了常见错误的解决方法。

2025-10-28 16:27:05 1232

原创 VScode中模拟lvgl运行环境配置

本文介绍了在Windows系统下搭建LVGL图形库开发环境的完整流程。主要包括:1)下载安装VSCode、CMake、SDL2和MinGW64等必要软件;2)VSCode插件安装(C/C++支持包、CMake相关工具);3)环境配置(目录复制、环境变量设置);4)通过gcc和cmake命令验证环境安装;5)下载LVGL演示工程及相关库文件;6)在VSCode中导入工程并编译运行。文中提供了详细的软件下载地址和配置步骤说明,并提及了可能遇到的gcc路径问题解决方案。

2025-10-28 15:29:04 1357

原创 android面试题目合集二

Fragment是Activity中的一个模块化部分,拥有自己的生命周期,类似于Activity的生命周期,但多了onAttach()、onCreateView()、onActivityCreated()等方法。LiveData是不可变的数据持有者,而MutableLiveData是可变的,允许通过postValue()或setValue()更新数据。避免在Activity或Fragment中持有长生命周期的引用,使用弱引用或软引用,及时释放资源,使用LeakCanary检测内存泄漏。

2025-02-10 09:38:28 518

原创 android面试题集合

‌使用合适的线程和异步机制‌:在进行网络请求时,使用合适的线程和异步机制(如AsyncTask、Handler、RxJava等),以避免在主线程上进行网络请求,防止阻塞UI线程。在使用单例模式时,如果单例对象持有Activity或Application的引用,并且单例的生命周期比Activity或Application更长,那么会导致内存泄漏。‌线程‌:线程可以理解为进程中独立运行的子任务,同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。

2025-01-21 09:40:58 551

原创 解析APK中CERT.RSA文件,获取公钥证书

有三个文件MANIFEST.MF、CERT.SF、CERT.RSA分别保存着不同的签名信息。将CERT.RSA 后缀名修改为p7b, 然后双击CERT.p7b---》点击逻辑存储名---》点击证书---》双击颁发给--》详细信息---》公钥 即可得到公钥信息(此处显示的是16进制)比较签名文件 CERT.RSA里的公钥证书和预置到设备里的公钥证书 LZ.cer(PEM格式)是否相等。3.获取预置到设备里的公钥证书,比如 LZ.cer (PEM格式) 数据以Base64表示。1.apk解压后的目录结构。

2023-06-06 13:40:40 9247 3

原创 个人命令整理(二)

1.git操作 /////////////////////////////git操作/////////////////////////////1.查看分支--->git branch2.创建分支--->git branch nwl3.切换分支--->git checko...

2019-10-16 10:38:13 365

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除