一种基于md5和分布式缓存的大规模短信防重发方法

文档序号:7810288阅读:441来源:国知局
一种基于md5和分布式缓存的大规模短信防重发方法
【专利摘要】本发明公开了一种基于MD5和分布式缓存的大规模短信防重发方法,包括以下步骤:应用MD5算法对预发送短信内容进行哈希运算,得到一个唯一的内容标识;将内容标识与接收号码再次进行MD5运算,得到一个内容与接收号码的唯一标识;在内存中查找唯一标识;若找到该唯一标识,则代表此短信已被发送,无需后续处理;若没有找到,则将唯一标识存放到内存中,并发送短信。本发明对短信内容和号码进行哈希运算,得到一个唯一的十六进制数字串,使用此数字串进行重复判断,能够极大地减少内存占用。同时利用了分布式缓存技术,在单机内存不够的时候,能够方便地扩展到多台机器,因此能够从容地应对大规模短信的处理。
【专利说明】一种基于MD5和分布式缓存的大规模短信防重发方法

【技术领域】
[0001] 本发明属于移动通信领域,具体涉及一种基于MD5和分布式缓存的大规模短信防 重发方法。

【背景技术】
[0002] 在短信的发送过程中,由于系统、网络、并发、人为(无心或恶意)等原因,很容易造 成短信的重复发送,给接收人带来很大的困扰。
[0003] 现有的技术一般是通过对短信内容和接收号码进行重复判断,同时将发送过的内 容和号码存放到内存或数据库中。如果存放于内存,那么在大规模的短信下,内存很快会被 占满,而一台机器的内存总是有限的,到达一定量后将无法扩展。如果存放于数据库,则性 能低下,无法满足短信的时效性。同时为了避免因并发造成判断错误等问题,一般只能在一 台机器上进行判断,当短信规模超过一定量后,单机的处理性能将无法满足系统的需要。


【发明内容】

[0004] 为解决上述技术问题,本发明的目的是提供一种基于MD5和分布式缓存的大规模 短信防重发方法。
[0005] 本发明采用的技术方案是: 一种基于MD5和分布式缓存的大规模短信防重发方法,其特征在于包括以下步骤: A、 应用MD5算法对预发送短信内容进行哈希运算,得到一个唯一的内容标识: contentHash = md5(content);其中,content 表不短信内容; B、 将内容标识与接收号码再次进行MD5运算,得到一个内容与接收号码的唯一标识: uniqueHash = md5 (contentHash+receiver);其中,receiver 表不接收号石马; C、 在内存中查找唯一标识; D、 若找到该唯一标识,则代表此短信已被发送,无需后续处理; E、 若没有找到,则将唯一标识存放到内存中,并发送短信。
[0006] 作为本技术方案的进一步改进,所述内存扩展有分布式缓存,所述步骤C中查找 唯一标识与E中存放唯一标识均在缓存中。
[0007] 其中,所述分布式缓存为Redis或者Ehcache存储系统。
[0008] 所述哈希运算和查找唯一标识通过短信重复判断模块实现。
[0009] 所述内容标识与唯一标识为十六进制的数字串。
[0010] 所述数字串为32位。
[0011] 本发明的有益效果: 本发明主要利用了 MD5算法(消息摘要算法),对短信内容和号码进行哈希运算,得到一 个唯一的32位的十六进制数字,使用此数字串进行重复判断,能够极大地减少内存占用。 同时利用了分布式缓存技术,在单机内存不够的时候,能够方便地扩展到多台机器,因此能 够从容地应对大规模短信的处理。

【专利附图】

【附图说明】
[0012] 下面结合附图对本发明的【具体实施方式】做进一步的说明。
[0013] 图1是本发明的系统结构框图; 图2是本发明的基于MD5和分布式缓存的大规模短信防重发方法的流程图。

【具体实施方式】
[0014] 参考图1所示,为本发明的系统由两个部分组成,即短信重复判断模块和分布式 缓存模块。其中短信重复判断模块负责对内容和号码进行MD5计算,并通过缓存判断短信 是否已被发送,而分布式缓存模块则负责记录已发送短信。
[0015] 短信重复判断模块和分布式缓存模块都可以根据系统需要进行扩展,数量可以是 N个,因此能够应对大规模的短信的需要。
[0016] 基于上述MD5和分布式缓存的大规模短信防重发方法,包括以下步骤:如图2 A、 短信重复判断模块应用MD5算法对预发送短信内容进行哈希运算,得到一个唯一的 十六进制的数字串内容标识:contentHash = md5(content);其中,content表示短信内 容; B、 短信重复判断模块将内容标识与接收号码再次进行MD5运算,得到一个内容与接收 号码的十六进制的数字串唯一标识:uniqueHash = md5 (contentHash+receiver);其中, receiver表示接收号码; C、 在缓存中查找唯一标识; D、 若找到该唯一标识,则代表此短信已被发送,无需后续处理; E、 若没有找到,则将唯一标识存放到缓存中,并发送短信。
[0017] 其中,所述分布式缓存为Redis或者Ehcache存储系统。
[0018] MD5算法又叫哈希算法,其作用是让大容量信息在用数字签名软件签署私人密钥 前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制 数字串)。
[0019] 如上所述,本发明主要利用了 MD5算法(消息摘要算法),对短信内容和号码进行哈 希运算,得到一个唯一的32位的十六进制数字,使用此数字串进行重复判断,能够极大地 减少内存占用。同时利用了分布式缓存技术,在单机内存不够的时候,能够方便地扩展到多 台机器,因此能够从容地应对大规模短信的处理。
[0020] 以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以 基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。
【权利要求】
1. 一种基于MD5和分布式缓存的大规模短信防重发方法,其特征在于包括以下步骤: A、 应用MD5算法对预发送短信内容进行哈希运算,得到一个唯一的内容标识: contentHash = md5(content);其中,content 表不短信内容; B、 将内容标识与接收号码再次进行MD5运算,得到一个内容与接收号码的唯一标识: uniqueHash = md5 (contentHash+receiver);其中,receiver 表不接收号石马; C、 在内存中查找唯一标识; D、 若找到该唯一标识,则代表此短信已被发送,无需后续处理; E、 若没有找到,则将唯一标识存放到内存中,并发送短信。
2. 根据权利要求1所述的一种基于MD5和分布式缓存的大规模短信防重发方法,其特 征在于:所述内存扩展有分布式缓存,所述步骤C中查找唯一标识与E中存放唯一标识均 在缓存中。
3. 根据权利要求2所述的一种基于MD5和分布式缓存的大规模短信防重发方法,其特 征在于:所述分布式缓存为Redis或者Ehcache存储系统。
4. 根据权利要求2所述的一种基于MD5和分布式缓存的大规模短信防重发方法,其特 征在于:所述哈希运算和查找唯一标识通过短信重复判断模块实现。
5. 根据权利要求1所述的一种基于MD5和分布式缓存的大规模短信防重发方法,其特 征在于:所述内容标识与唯一标识为十六进制的数字串。
6. 根据权利要求5所述的一种基于MD5和分布式缓存的大规模短信防重发方法,其特 征在于:所述数字串为32位。
【文档编号】H04W4/14GK104113830SQ201410367794
【公开日】2014年10月22日 申请日期:2014年7月29日 优先权日:2014年7月29日
【发明者】余敬龙 申请人:广东能龙教育股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1