自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不忘初心的专栏

分享学习的点点滴滴,欢迎交流。

原创 系统设计(一)优秀的代码

前言 一个优秀的架构师必须是一个优秀的coder,代码编写分为两个层级,代码整洁可读、扩展性好、效率高。 一个应用系统新建之处,就必须有一个编码规范,指导团队相关同学日常开发,笔者认为编码规范可以包含如下几部分,另外可以有bad case 和bad case样板间,指导团队同学开发。 系统对...

2020-01-17 22:28:19 188 0

原创 Java8 Stream中 peek、map、foreach区别

一、前言 在前面一篇文章中以Demo的形式介绍了Stream的API使用,其中peek和map看起来很像,这里再详细介绍一下。 二、管道流 一个流式也就是一条管道,操作分为三步 数据准备 一步和多步中间操作,所有的操作都是懒操作,不会对数据产生影响 终止操作,数据输出 三、peek、m...

2020-01-12 17:25:07 1332 0

原创 Java8 stream编程示例

最近在使用Java8编程,流式编程效率非常高,代码也比较简洁针对stream/parallelStream的常用方法foreach、filter、anyMatch、allMatch、Map、flatMap、reduce、limit、skip、distinct、summaryStatistics写了...

2020-01-12 12:43:37 233 0

原创 浅谈分布式系统FailOver

目录 概述 具体措施 存储层 中间件层 服务器 编码方面 概述 根据百度百科的词条描述,失败转移(FailOver)是指一种备份操作模式,当系统的主要组件由于失效或预定关机时间的原因而无法工作时,这种模式的系统组件功能被转嫁到二级系统组件中。 简单来讲就是当分布式系统中的某个...

2019-11-03 20:23:58 253 0

原创 Java自动生成身份证号

背景 在平常测试过程中,有时候需要生成大量的身份证号,就写了个自动生成身份证号的小工具,支持制定出生日期和随机生成两种模式。 身份证号规则 首先了解下,中国的18位身份证号规则: (1)前1、2位数字表示:所在省份的代码; (2)第3、4位数字表示:所在城市的代码; (3)第5、6位数...

2019-11-03 19:45:41 686 0

原创 TPS、QPS和系统吞吐量的区别和理解

一、QPS/TPS QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一...

2018-10-21 21:36:21 71646 3

原创 Ubuntu18.04安装Nginx

Nginx是一个高性能的HTTP服务,可以用作反向代理服务器和静态文件下载服务器。 本篇文章介绍下Ubuntu18.04上安装Nginx的过程,以及遇到问题的解决办法。 一、安装依赖库 更新源 sudo apt-get update 安装c++依赖库 sudo apt-get i...

2018-09-27 17:13:13 7092 1

原创 Ubuntu18.04编译Nginx报错objs/Makefile:460: recipe for target 'objs/src/core/ngx_murmurhash.o' failed

问题描述 在Ubuntu18.04上安装Ngnix,在编译步骤出现如下错误: cc1: all warnings being treated as errors objs/Makefile:460: recipe for target 'objs/src/core/ngx_murmu...

2018-09-27 14:54:08 9071 4

原创 基于Lire库搜索相似图片

什么是Lire LIRE(Lucene Image REtrieval)提供一种的简单方式来创建基于图像特性的Lucene索引。利用该索引就能够构建一个基于内容的图像检索(content- based image retrieval,CBIR)系统,来搜索相似的图像。LIRE使用的特性都取自MP...

2018-07-22 16:50:58 2679 1

原创 基于Lucene、TF-IDF、余弦相似性实现长文本相似度检测

什么是TF-IDF TF-IDF(Term Frequency-Inverse Document Frequency),汉译为词频-逆文本频率指数。 TF指一个词出现的频率,假设在一篇文章中某个词出现的次数是n,文章的总词数是N,那么TF=n/N 逆文本频率指数IDF一般用于表示一个词的权重...

2018-07-21 21:06:23 2349 5

原创 WebMagic爬取应用市场应用信息

WebMagic资料 官方教程 http://webmagic.io/docs/zh/ 官方网址 http://webmagic.io/ 代码实现 爬取华为应用市场应用信息,统计华为应用市场应用数量,启动20个线程,自定义MyPiple来保存数据。 AppStoreProcessor....

2018-07-18 22:13:10 667 0

转载 Android静态安全检查(十六):WebView跨域访问漏洞

2017年12月7日,国家信息安全漏洞共享平台(CNVD)接收到腾讯玄武实验室报送的Android WebView存在跨域访问漏洞(CNVD-2017-36682)。攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据、照片、文档等敏感信息),还可窃取用户登录凭证,在受害者毫无察觉的情况下实...

2018-07-10 22:26:01 490 0

原创 Android静态安全检查(十五):WebView明文密码存储检测

明文密码存储Android的WebView组件默认打开了提示用户是否保存密码存储功能,如果用户选择了保存,用户名和密码就会被明文存储到该应用的database/webview.db文件中。明文存储的用户名和密码,不仅会被该应用随意的获取,其他的恶意程序也可能通过提权或者root的方式访问该应用的w...

2018-07-10 22:18:08 809 0

原创 Android静态安全检查(十四):开放服务检测

为什么应用开放服务不安全开启服务即创建监听端口的SocketServer,通过SocketServer开启服务,可以接受客户端的请求操作,通常使用NanoHTTPD库来创建Socket服务端。如果一个应用创建了ServerSocket,开启了服务监听,如果服务端对连接的客户端验证不严格的话,恶意应...

2018-07-10 21:48:09 217 0

原创 Android静态安全检查(十三):剪切板使用检测

Android剪切板使用风险Android剪切板是可以暂存数据,剪切板在后台起作用,存放在内存中。如果把隐私数据,特别是密码,存放在剪切板中是不安全的,因为任何的应用程序都可以访问剪切板中的数据。如果一个恶意应用,注册了系统剪切板的监听器事件,当剪切板数据发生变化的时候,就能获取到剪切板的数据,通...

2018-07-10 20:36:58 1373 0

原创 Android静态安全检查(十二):内部SQLite存储风险

内部SQLite存储风险简介内部SQLite指/data/data/包名/databases/路径下的文件,openOrCreateDatabase方法可以对该路径下的数据进行读写操作。 /** * Open a new private SQLiteDatabase associa...

2018-07-08 20:56:47 439 0

原创 Android静态安全检查(十一):openFileOutput存储风险

OpenFileOutput存储风险简介Android应用内部文件是指/data/data/packageName/files路径下的文件,openFileOutput方法可以对内部文件的数据进行读写操作。通过ContextWrapper类的openFileOutput方法或者Context类的o...

2018-07-08 20:46:43 568 0

原创 Android静态安全检查(十):Shared Preferences存储风险

Shared Preferences存储风险简介Android系统提供了以下四种Android应用本地存储方式:Shared Preferences、SQLite Databases、Internal Storage、External Storage等存储方式。Shared Preferences...

2018-07-08 18:09:56 852 0

原创 Android静态安全检查(九):不安全的SDCard存储检测

什么是SDCard读写Android系统中存放的文件存储卡有内置存储卡和外置的存储卡SDCard是外部存储卡,类似U盘,没有对文件进行权限控制,因此程序只需要有SDCard的读写操作权限,就可以对所有的SDCard文件进行读写,电脑也可以访问SDCard文件。手机内置的存储卡是有权限控制的,相对来...

2018-07-08 17:07:41 776 0

原创 Android静态安全检查(八):自定义Permission检测

自定义权限风险Android系统提供了很多权限,同时也允许

2018-07-08 15:48:11 398 0

原创 Android静态安全检查(七):Content Provider文件目录遍历漏洞

漏洞描述Android应用的Content Provider存在文件目录遍历的漏洞,如果一个暴露的Content Provider组件(Android静态安全检查(一):组件暴露),没有组件的访问进行权限控制和对访问的目标文件的Content Query URI进行有效的判断,攻击者利用该暴露的组...

2018-07-08 15:43:49 1017 0

原创 Android静态安全检查(六):Service劫持

什么是Service劫持Android应用中,Service是一个重要的组件,用于执行比较耗时的后台任务,启动一个Service常用的方法是ComponentName startService(Intent service),传入的参数是Intent,Intent使用有两种情况一个是设置actio...

2018-07-08 15:32:03 590 0

原创 Android静态安全检查(五):Activity劫持

什么是Activity劫持一般情况下分为两种第一种是,手机里面安装了恶意程序,恶意程序会注册一个Receiver,响应android.intent.action.BOOT_COMPLETED事件,这个Service会启动一个定时器,不停的循环查询当前运行的进程。一旦当前的进程正是我们要劫持的,并运...

2018-07-08 11:58:04 1983 0

原创 Android静态安全检查(四):允许调试检测

允许调试风险在Android应用的Manifest.xml有一个Debugable属性,决定应用程序可不可以在手机上进行调试。只有该值为true,我们才可以在手机上进行调试。使用Android Stdio进行打包时,该值默认是true,如果导出包,该值为false。如果应用程序运行调试,就可能存在...

2018-07-08 11:21:07 413 0

原创 Android静态安全检查(三):允许备份检测

应用允许备份漏洞Android应用的Manifest.xml的Application标签下的allowBackup属性决定当前的应用程序可不可以备份,如果可以备份,则可能导致应用的敏感信息泄露。如果当前的应用程序确实需要备份功能,就必须明确的指定backupAgent属性,那么当备份的时候,会使用...

2018-07-08 10:44:51 386 0

原创 Soot检测Android应用Zip目录遍历漏洞

Soot简介Soot是一个Java静态分析框架,它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。使用Soot可以对Android应用进行静态分析,Android静态分析指...

2018-07-07 22:42:36 584 0

原创 Android静态安全检查(二):Zip文件目录遍历攻击漏洞

什么是Zip文件遍历        Zip压缩包中,允许文件名存在"../"字符串,攻击者可以利用多个“../”在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件。如果被覆盖掉的文件是动态链接so、dex或者odex文件,轻则产生本地拒绝服务漏洞,影响应用的可用性,...

2018-07-07 22:32:08 1073 0

原创 Android静态安全检查(一):组件暴露

简介

2018-07-07 20:38:10 2191 0

转载 Android应用五种数据存储方式

Android的五种数据存储方式文件存储SharedPreferencesSQLite数据库存储ContentProvider网络存储一、文件存储默认存储路径:/data/data/<PackageName>/files文件操作模式:MODE_PRIVATE(默认):覆...

2018-07-07 20:33:43 454 0

原创 Soot获取Android应用Manifest信息

Soot简介Soot是一个Java静态分析框架,它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。使用Soot可以对Android应用进行静态分析,Android静态分析指...

2018-07-06 21:38:26 452 0

原创 Soot获取Android应用控制流图

Soot简介Soot是一个Java静态分析框架,它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。使用Soot可以对Android应用进行静态分析,Android静态分析指...

2018-07-01 22:35:52 1623 3

原创 Soot检测Android应用中Email地址

Soot简介Soot是一个Java静态分析框架,它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。使用Soot可以对Android应用进行静态分析,Android静态分析指...

2018-07-01 19:08:51 274 0

原创 Soot检测Android应用中URL地址

Soot简介Soot是一个Java静态分析框架,它提供了四种中间(representation)表现用于分析与转换Java字节码.Soot既可以作为优化和检查class文件的工具也可以作为一个开发与优化Java字节码的框架。使用Soot可以对Android应用进行静态分析,Android静态分析指...

2018-07-01 19:06:29 717 1

转载 Nginx常用功能

Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。这里我给来2张图,对正向代理与反向代理做个诠释,具体细节,大家可以翻阅下资料。代理与反向代理Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图...

2018-06-24 22:18:44 141 0

原创 Zookeeper可视化客户端ZooViewer详细使用教程

前言目前Zookeeper可视化客户端不多,使用过zkui之后,感觉不太好用,就想自己开发一个,利用周末时间使用JavaFX开发了一个PC端可以直接运行的可视化客户端,起名叫ZooView,本篇文章讲解下如何使用。下载访问github地址下载zooview.zip,Github地址:https:/...

2018-06-24 17:53:36 19833 3

原创 JavaFX TreeView注册鼠标点击事件

使用JavaFX的TreeView控件,需要注册树节点的鼠标点击事件,下面是示例,鼠标点击之后,可以获取当前节点的值。这个是定义的TreeView: TreeView<String> nodeTreeView; nodeTreeView.addEventFilte...

2018-06-24 13:56:46 2936 0

原创 Java NIO示例

学习了Java的NIO框架,NIO是Java提供的非阻塞I/O,基于Channel和Buffer实现,下面给出Socket示例代码,服务端和客户端。一、服务端代码import java.io.IOException; import java.net.InetSocketAddress; impor...

2018-06-13 22:44:23 3127 0

原创 Java测试RabbitMQ生产者和消费者

一、环境准备请看上一篇文章,Ubuntu18.04安装RabbitMQ完成RabbitMQ服务端搭建,并创建admin用户。

2018-06-10 20:24:08 2641 0

原创 reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for user user_admin

Java使用amqp-client连接rabbitmq服务端,报出如下异常Exception in thread "main" java.io.IOException at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel...

2018-06-10 20:19:21 10645 0

原创 Ubuntu18.04安装RabbitMQ

1、安装erlang由于rabbitMq需要erlang语言的支持,在安装rabbitMq之前需要安装erlangsudo apt-get install erlang-nox2、安装Rabbitmq更新源sudo apt-get update

2018-06-10 19:32:38 8923 2

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