如标题所述,调用系统相选择图片并显示
2025/10/6 14:41:45 6.6MB Android
1
上次曾经传过一个易宝、支付宝、财付通、云网等多用MD5加密程序。
易宝是采用hmac的MD5加密,提供的ASP版函数不支持中文,使用dll注册那个兼容又不太好。
上次我发布的加密程序也不支持中文,且支付宝那个加密函数是错误的。
为此我专门研究了三天的hmac方案,当然了我也只是通过改进代码反复测试而已。
先是调用易宝提供的C++版dll,因为我知道它支持中文。
我先是把ASP版的密钥key进行unicode处理,然后用中文密钥与dll版加密结果竟然一致了。
当时一高兴,认为处理中文字符肯定是采用unicode的。
结果把密文换成中文一试,又不行了。
我又想到按普通字符处理,中文字符再And&HFF,反复试验还是不行。
浪费了两天,也找到了另一个C++版hmac函数源码,没看到有字符编码处理。
最后才想到易宝提供的其它源码。
PHP源码还是比较容易看懂的,原来加密的字符text和密钥key都是先转换为UTF-8编码。
这一点与原先那个dll里就可能不一致,把PHP上传到空间一测试,果然密钥使用中文是不一样的。
我也无法知道易宝自己到底使用哪一种方案,先设计一个UTF-8的转码函数吧。
网上找了下,光这些函数都有几十K大小,还是自己设计省事。
ASP版的hmac都不支持中文,就是没有转码函数。
VB还有StrConv可以转换unicode,ASP却不能用。
其实我们常用的ASP版md5加密,与其它程序的也是不兼容中文。
原因还是ASP转换unicode十分困难,但是支付宝的接口是有这么个函数的,而且代码很简练,我参考它设计了UTF-8编码函数。
(支持多国语言的哦)经过三天的改进,程序从17K精简到了9K,使hmac兼容中文,md5也提供了两个版本,一是ASP简版,二是标准版。
这个标准版是指其它程序都在采用的unicode编码方案,其实ASP简版才是我们最多使用的,但它并不通用。
调用方法:HmacMd5(text,key)-加密内容支持中文,但key最好用非中文的。
md5(text)-简版,ASP_MD5(text)-标准版支付宝一定要用ASP_MD5,财付通的加密内容一般没中文的,所以两者均可。
2025/10/5 17:20:38 3KB ASP hmac md5 utf-8
1
Redis安装部署与Java调用(内含单机版、集群版)
2025/10/5 13:17:45 56.58MB java 安装部署 redis单机 redis集群
1
扩展卡尔曼滤波算法,具有详细的函数说明,可以根据情况进行调用。
2025/10/5 4:51:44 2KB EKF
1
详细说明:http://blog.csdn.net/xiajinxian/article/details/46627527适用环境:powerbuilder10.0以后的版本windowserver2003以后的测试可用PB也可以调用系统自带的DLL实现MD5其中md5file对大附件的处理速度也比第三方组件快
2025/10/4 18:02:07 3KB PB powerbuilder md5 hash
1
unity调用数据库都要用到system.data类,在此提供dll的2.x版本和4.x版本,用unity/vs2017的可能需要引用4.x版本的dll
2025/10/4 9:25:43 1.68MB system.data
1
对matpower中潮流计算命令的调用格式有详细的说明,并且解释了case中参数的含义。
对于初学者是个不错的选择,熟手就不用看了。
2025/10/4 0:02:26 273KB matpower
1
u-boot2017.01启动过程分析,以ppt的方式对uboot2017.11的启动过程进行分析,主要分析了启动过程函数的调用过程
2025/10/3 21:54:31 4.43MB Uboot Linux启动过程 源码分析
1
配送一个自己写的串口驱动程序用DMA接收数据接收完会产生一个空闲中断由此可判断接收完一个包的数据再配送一个我自己写的动态内存管理跟ESP8266的驱动在项目中测试460800的波特率30kb一秒的数据接收一包1024个字节每包需要应答15字节的情况下AT指令处理是使用多个缓冲级来处理模块发送过来的数据分别有模块应答缓冲级跟等待应答的缓冲级、被忽略的AT指令集的缓冲级(例如注册一个SENDOK\r\n则模块应答此条指令立刻清除缓冲级释放内存无需等待超时直接忽略)还有需要回调的缓冲级(则出现此指令调用回调函数)都是通过注册的方式来实现如果出现一包跟指令被分到一个包内AT处理函数一样可以搜索到AT指令使用strstr函数来实现函数的缓冲级都是指针不占用内存使用动态内存管理的方式有数据则创建内存放入数据作为一个缓冲级如果模块应答的数据在规定的时间内没有响应则删除此缓冲级函数前都有注释介绍下面介绍一些常用的函数:at_init初始化一些变量已经串口at_time_task使用定时器回调1毫秒回调一次用来计数超时的指令缓冲&等待超时的计数at_clear_all在模块开机的时候可能会有很多乱数据可以在初始化完毕后使用此函数清除所有缓冲级释放所有内存at_processing处理AT的应答超时的指令(做删除释放内存的动作),还有处理等待的AT指令此函数一定要不断循环处理可以加入到定时器目前我实验是在UCOS上的所以直接创建个任务来执行此函数当程序在等待某个AT指令的时候此函数会寻找接收的缓冲级是否有等待的AT指令at_cmd_cb_hand回调处理函数如果接收缓冲级出现某个已经注册的指令则回调注册时所填写的函数地址at_send_cmd发送一个AT指令可以用跟printf一样使用%d等等at_send_data发送数据的时候所使用需要填写长度at_cmd_ignore_register注册一个被忽略的AT指令带入参数*s(例如填写一个"SENDOK"则模块应答的此条指令直接被忽略释放内存被忽略之前会检查此缓冲级会不会带有别的AT指令需要回调的)at_cmd_ignore_cancel取消被忽略的指令则取消已经注册的被忽略的AT指令at_cmd_cb_registerAT指令的回调注册例如参数填写"+IPD",函数名a则出现+IPD的时候回调a函数a函数有类型在at.h文件里面有at_cmd_cb_cancel注销回调你懂得at_wait_cmd等待一个AT指令集或者超时则立刻返回等待途中会不断调用OS的延迟程序让系统能有时间去执行其他任务使用方法例如{at_send_cmd("AT+UART=%u,%u,%u,%u,%u\r\n",baudrate,databit,stopbit,parity,flow_control);return(esp_error)at_wait_cmd("\r\nOK\r\n",2000,NULL);}at_errorat_wait2_cmd(char*s,char*s2,u16timeout,u8*index)此函数是等待两个AT指令集如果出现一个则立刻返回返回值h文件有介绍AT_DONE则出现此条指令index参数则提取应答的缓冲首地址使用at_buf_get函数获取首地址使用完后要调用at_free_buf来清除并释放这个缓冲级at_buf_len_get查询此应答的缓冲级长度如果在index填写NULL则不需要缓冲级首地址直接清除释放缓冲级
1
流媒体海康威视
2025/10/2 20:45:37 202.69MB 海康威视 流媒体
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡