算法
codepython
这个作者很懒,什么都没留下…
展开
-
BASE32编码--记录
BASE32编码 --记录一、Base32数据编码简介 Base32这种数据编码机制,主要用来把二进制数据编码成可见的字符串,其编码规则是:任意给定一个二进制数据,以5个位(bit)为一组进行切分(base64以6个位(bit)为一组),对切分而成的每个组进行编码得到1个可见字符。Base32编码表字符集中的字符总数为25=32个,这也是Base32名字的由来。以下是我在网上找的一个转载 2014-10-22 09:49:09 · 3921 阅读 · 0 评论 -
Windows上编译最新的CURL,含有zlib,openssl
最近,从网上下载了一个curl库,使用时各种报错,都无法启动,于是干脆就直接自己编译了。 1. 准备工作 a. 下载zlib zlib可以使得HTTP请求支持gzip压缩,其地址如下: 官网:http://zlib.net/ 下载地址:http://zlib.net/zlib-1.2.8.转载 2015-02-09 20:01:29 · 470 阅读 · 0 评论 -
明明白白使用DES加密算法
DES加密算法在很多行业都有着非常广泛的应用,对于初学者,开始很容易被ECB、CBC以及计算MAC搞得困惑不已,下面我将一一介绍这几者之间的关系,希望对新人有帮助。为了易于表述,下面所有的密钥及数据都用16进制字符串表示(比如:0x12 0x34 0x56 0x78会被直接写成12345678)。另外,最好你手头上有DES转载 2015-02-10 14:37:00 · 2534 阅读 · 0 评论 -
hashmap数据结构分析
Java综合 /** *@author annegu *@date 2009-12-02 */ Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。1、hashmap的数据结构 要知道hashmap转载 2015-02-27 17:47:54 · 806 阅读 · 0 评论 -
百度地图如何计算两点之间距离
百度地图如何计算两点之间距离分类: 算法 2013-05-08 23:39 15819人阅读 评论(4)收藏 举报路线规划提供了获取路线距离的方法,见MKRoutePlan 类的 getDistance 方法。如果是计算任意两点的距离,自2.0.0版本开始,Android SDK为开发者提供了计算距离的接口(DistanceUtil),具体使转载 2015-02-15 15:59:00 · 2250 阅读 · 0 评论 -
Geohash
GeohashFrom Wikipedia, the free encyclopediaJump to: navigation, search This article is about a system for encoding geographic coordinates. For the game, seeGeohashing.Geohas转载 2015-03-30 18:04:16 · 2056 阅读 · 0 评论 -
GeoHash核心原理解析
机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。 饭饱之后机机开始反思了,地图后台如何根据自己所在位置查询来查询附近餐馆的呢?苦思冥想了半天,机机想出了个方法:计算所在位置P与北京所有餐馆的距离,然后返回距离 机机的计算思想很朴素,就转载 2015-03-30 18:14:09 · 420 阅读 · 0 评论 -
LBS的球面距离计算及Geohash方案探讨(LBS之一)
随着移动终端的普及,很多应用都基于LBS功能,附近的某某(餐馆、银行、妹纸等等)。基础数据中,一般保存了目标位置的经纬度;利用用户提供的经纬度,进行对比,从而获得是否在附近。目标:查找附近的XXX,由近到远返回结果,且结果中有与目标点的距离。针对查找附近的XXX,提出两个方案,如下:一、方案A:==========================转载 2015-03-30 19:18:56 · 1706 阅读 · 0 评论 -
查找附近网点geohash算法及实现
查找附近网点geohash算法及实现 2014-12-19 11:40:01 www.hackbase.com 来源:互联网 参考文档:http://blog.csdn.net/wangxiafghj/article/details/9014363geohash 算法原理及实现方式http://blog.charlee.li/geohash-intro/ geoh转载 2015-03-30 18:28:31 · 1234 阅读 · 0 评论 -
附近地点搜索解决方案
附近地点搜索解决方案2014-09-01 09:51 Xzero oschina 字号:T |T随着移动互联网的兴起,越来越多的App中加入了LBS的元素。而在各种LBS应用中,查找附近的地点是一种最基本也是最常见的形式。AD:WOT2015 互联网运维与开发者大会 热销抢票转载 2015-03-30 18:55:59 · 956 阅读 · 0 评论 -
开发LBS应用之 根据一点的经纬度实现附近点的查询 - geohash
开发LBS应用之 根据一点的经纬度实现附近点的查询 - geohash时间 2014-07-31 15:13:13 segmentfault-博客原文 http://blog.segmentfault.com/cloudmario/1190000000624088 geohash这年头和LBS相关的应用越来越火. 从最早的foursquare的热闹程度就可见转载 2015-03-30 17:57:57 · 2054 阅读 · 0 评论 -
微信、陌陌的架构方案分析(LBS之二)
目标解决大型应用(微信、陌陌级别)中,用户经纬度在不断更新,用户查找频繁的问题。(每分钟1000W级)方案A本方案前,请先阅读 http://www.alivenode.com/index.php/archives/300(LBS的球面距离计算以及Geohash方案探讨(LBS之一))由上文,简单可得;1、仅需每分钟将用户的经纬度,上报到数据库;2、然后每次转载 2015-03-30 19:24:18 · 864 阅读 · 0 评论 -
Ehcache详细解读
缓存Ehcache Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。网上中文的EhCache材料以简单介绍和配置方法居多,如果你有这方面的问题,请自行google;对于API,官网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现原理的分析,因此在这篇文章里面,我会详细介绍转载 2015-04-03 19:54:07 · 513 阅读 · 0 评论 -
android Rsa 算法加密
首先我们可以从上图看到:明文--->公钥--->密文 密文-->密钥-->明文 RSA由于public key 和private key的不同,极大的提高了文件的安全性。 对称算法是同key的 ,这样很容易被人破解。 RSA算法: import java.security.Key;转载 2015-02-08 11:08:55 · 396 阅读 · 0 评论 -
DES
一、数据补位DES数据加解密就是将数据按照8个字节一段进行DES加密或解密得到一段8个字节的密文或者明文,最后一段不足8个字节,按照需求补足8个字节(通常补00或者FF,根据实际要求不同)进行计算,之后按照顺序将计算所得的数据连在一起即可。这里有个问题就是为什么要进行数据补位?主要原因是DES算法加解密时要求数据必须为8个字节。二、ECB模式DES ECB(电子转载 2015-02-09 01:52:49 · 586 阅读 · 0 评论 -
在Android 2.3 平台下编译CURL 和OpenSSL过程
操作系统是Ubuntu 10.04(x64)1。安装 Ubuntu 10.04, 可以到 mirrors.163.com 下载,注意不要安装更新 我试过在MAC OSX 和更高版本操作Android平台,不过总是出错,因此只能选择这个版本2。安装 JAVA jdk6.并设置JAVA环境必须到oracle网站手动下载(还需要注册,真讨厌)jdk-6u43-转载 2015-02-07 22:56:35 · 504 阅读 · 0 评论 -
Base32编码
分类: 开发心得2004-09-07 14:10 7741人阅读 评论(11) 收藏 举报bytenullexceptionstringmodulesystem0、写在前面这里讨论的编码主要的目的是将不可显示的二进制数组转变为可显示的字符串,包括其逆运算。通过特定的协议传输数据,或者加密解密的时候都会用到类似的方法。在这类运算中用的比较多的是Base64,比如M转载 2014-10-22 09:10:14 · 5361 阅读 · 0 评论 -
geohash算法原理及实现方式
geohash算法原理及实现方式1、geohash特点2、geohash原理3、geohash的php 、python、java、C#实现代码4、观点讨论 w微博:http://weibo.com/dxl0321geohash有以下几个特点:首先,geohash用一个字符串表示经度和纬度两个坐标。某些情况下无法在两列上同时应用索引 (例如MySQL 4之前的版本转载 2014-11-28 23:03:13 · 2369 阅读 · 0 评论 -
GeoHash核心原理解析
引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。 饭饱之后机机开始反思了,地图后台如何根据自己所在位置查询来查询附近餐馆的呢?苦思冥想了半天,机机想出了个方法:计算所在位置P与北京所有餐馆的距离,然后返回距离 机机的计算思想转载 2014-11-28 23:10:49 · 1002 阅读 · 0 评论 -
java中HashMap详解
HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员,其中 HashMap 是 Map 接口的常用实现类,HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同,但它们底层的 Hash 存储机制完全一样,甚至 HashSet 本身就采用 HashMap 来实现的。 通过 HashMap、H转载 2015-01-10 15:16:37 · 393 阅读 · 0 评论 -
geohash:用字符串实现附近地点搜索
目录(?)[+]一些小型应用中这样做没问题,但在大型应用中它有个显著的缺点:速度慢。慢的原因有两个, 第一是范围比较的索引利用率并不高,第二是SQL语句极其不稳定(不同的当前位置会产生完全不同的SQL查询),很难缓存。可以考虑使用geohash算法。geohash是一种地址编码,它能把二维的经纬度编码成一维的字符串。比如,北海公园的编码是wx4g0ec1。转载 2014-12-06 22:21:53 · 704 阅读 · 0 评论 -
Java和C/C++进行DES/AES密文传输
本来觉得DES、AES这种流行加密算法,使用起来应该很简单。但研究后发现有两个变数:1)分块的方式。加密是逐块进行的。分块方法有:CBC、ECB、CFB……2)padding的方式。当数据的位数不及块的大小时,需要填充。填充方式有:NoPadding、PKCS5Padding……如果加解密端采用不同的分块方式或padding方式,即使都是采用DES/AES算法,同样无法解密成功。上次需转载 2015-02-03 14:41:15 · 1385 阅读 · 1 评论 -
靓号正则表达式(前后向查找等) 和 apache正则包使用
开源应用 正则表达式ApacheQQJDK 一般公司在开发一类对的号码时,会预留一些号码给以后升级的会员使用,比如旺旺靓号,QQ号等,采用正则表达式实现较好,通过规则引擎的后台页面做成实时可配置的也是不错的选择。一. 一般会有如下的正则需求 代码中每行都标有注释,这个就是需求,为设置靓号应该考虑的方面,这里特别提示下,不能忘记跟公司相关的业务,股票代码等检查。转载 2015-02-04 16:01:18 · 1071 阅读 · 0 评论 -
正则表达式判断号码靓号类型
很多网站需要将好的会员号留着,或用于日后的盈利。实现方法不是本文讨论范围,本文仅列出用于检测靓号类型的一些正则。 靓号检测:主要可以检测连号(正连 12345、倒连65432)、AABB号、手机号码、日期号(生日号、年度号)、ABBCABB号,3位以上重复号。更多类型号码检测可以根据以下表达式改造。 ' 匹配6位顺增 regex.Patter转载 2015-02-04 15:59:50 · 4779 阅读 · 0 评论 -
自己实现一个内存缓存
最近了解了下缓存技术,主要分为内存缓存 和磁盘缓存,然后分布式里面有一些消息的推送,节点的一些处理。现在很多的用OSCache,EhCache 等等,资料很多,暂时就不多说了,我这里仅仅为了了解缓存框架的的知识,自己临时写一个缓存,后面可以实现AOP 和spring 结合。 实现功能:1.数据都缓存到内存中2.实现对每个元素Element的缓存时间进行控制3.转载 2015-01-16 15:14:09 · 2074 阅读 · 0 评论 -
JAVA和.NET使用DES对称加密的区别
JAVA和.NET的系统类库里都有封装DES对称加密的实现方式,但是对外暴露的接口却各不相同,甚至有时会让自己难以解决其中的问题,比如JAVA加密后的结果在.NET中解密不出来等,由于最近项目有跨JAVA和.NET的加解密,经过我的分析调试,终于让它们可以互相加密解密了。 DES加密DES是一种对称加密(Data Encryption Standard)算法,转载 2015-02-03 14:25:07 · 886 阅读 · 0 评论 -
大端模式,小端模式,字节对齐 about C
杂谈 大端模式:数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中,这种存储模式就类似把数据当做字符串顺序处理,例如:数据中两个字节按顺序为:FE 10 ,它表示的一个数就是0xFE10。换句话说:内存的低地址存放着数据高位; 小端模式:数据的低位保存在内存的低地址中,而数据的高位保存在内存的高转载 2015-02-06 13:35:59 · 732 阅读 · 0 评论 -
Crypto++
Crypto++是个免费的C++加解密类库,由于资格太老、持续更新,最新版本到了CryptoPP 5.6,对天缘而言,第一眼看到CryptoPP就感觉头大,根目录下放置大量单源文件、编译文件、项目文件,再加上多平台和多编译器支持,文件几乎又多了一倍,而且还是都混到一起,直接就让人望而却步。毕竟Crypto是个功能完整,且经过大量用户使用考验的开源库。所以,皱眉学习汇总一下,遂成此文。官转载 2015-02-07 22:45:58 · 1167 阅读 · 0 评论 -
Android使用NDK调用C语言写的SO进行加密
由于公司的一个android项目发布之后,被人通过反编译并破解了Web Service接口地址以及参数的定义,因此需要想办法对传输的数据进行加密,考虑到Java代码存在被反编译的问题,最终采用了Android NDK来实现,通过NDK调用C语言写的加密算法生成MD5验证码的,同时考虑到用C写的SO被人盗用(直接将SO文件引用入工程)采用通过C语言调用Java代码进行调用转载 2015-02-07 23:05:33 · 2846 阅读 · 0 评论 -
常用的正则表达式收集
常用的元字符.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束常用的限定符 *重复零次或更多次+重复转载 2015-12-27 20:43:40 · 458 阅读 · 0 评论