自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

事后诸葛亮的程序人生(微信:zq9017197)

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!

  • 博客(703)
  • 资源 (10)
  • 收藏
  • 关注

原创 十、Base64编码

Base64Base64编码,是我们程序开发中经常使用到的编码方法。因为base64编码的字符串,更适合不同平台、不同语言的传输(一个字符可能其他的系统没有)。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法,一句:将二进制数据文本化(转成ASCII)。由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成...

2019-04-18 19:28:30 462

原创 九、SSL、TLS

SSL/TLS — 为了更安全的通信SSL/TLS是世界上应用最广泛的密码通信方法。比如说,当在网上商城中输人信用卡号时,我们的Web浏览器就会使用SSL/TLS进行密码通信。使用SSL/TLS可以对通信对象进行认证,还可以确保通信内容的机密性。SSL/TLS中综合运用了之前所学习的对称密码、消息认证码、公钥密码、数字签名、伪随机数生成器等密码技术。严格来说,SSL(Secure Socke...

2019-04-12 19:39:09 630

原创 八、证书

证书 – 为公钥加上数字签名要开车得先考驾照.驾照上面记有本人的照片、姓名、出生日期等个人信息.以及有效期、准驾车辆的类型等信息,并由公安局在上面盖章。我们只要看到驾照,就可以知道公安局认定此人具有驾驶车辆的资格。公钥证书(Public-Key Certificate,PKC)其实和驾照很相似,里面记有姓名、组织、邮箱地址等个人信息,以及属于此人的公钥,并由认证机构(Certificatio...

2019-04-12 19:38:50 504

原创 七、数字签名

数字签名 — 消息到底是谁写的数字签名是一种将相当于现实世界中的盖章、签字的功能在计算机世界中进行实现的技术。使用数字签名可以识别篡改和伪装,还可以防止否认。我们假设Alice使用的密钥是一个只有Alice自己才知道的私钥。当Alice发送消息时,她用私钥生成一个“签名"。相对地,接收者Bob则使用一个和Alice不同的密钥对签名进行验证。使用Bob的密钥无法根据消息生成签名,但是用Bob的...

2019-04-12 19:38:31 657

原创 六、消息认证码

消息认证码 — 消息被正确传送了吗?消息的完整性(integrity), 指的是“消息没有被篡改"这一性质,完整性也叫一致性。消息的认证(authentication)指的是“消息来自正确的发送者"这一性质。消息认证码(message authentication code)是一种确认完整性并进行认证的技术,取三个单词的首字母,简称为MAC。消息认证码的输入包括任意长度的消息和一个发送者...

2019-04-12 19:38:10 568

原创 五、单向散列函数

单向散列函数 — 获取消息的指纹当需要比较两条消息是否一致时,我们不必直接对比消息本身的内容,只要对比它们的“指纹”就可以了。单向散列函数(one-wayftnction)有一个输人和一个输出,其中输人称为消息(message),输出称为散列值(hashvalue)。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性。这里的消息不一定是人类能够读懂的文字,也可...

2019-04-12 19:37:49 579

原创 四、非对称加密

非对称加密也叫公钥密码: 使用公钥加密, 使用私钥解密在对称密码中,由于加密和解密的密钥是相同的,因此必须向接收者配送密钥。用于解密的密钥必须被配送给接收者,这一问题称为密钥配送问题。如果使用非对称加密也可以称为公钥密码,则无需向接收者配送用于解密的密钥,这样就解决了密钥配送问题。可以说非对称加密是密码学历史上最伟大的发明。非对称加密中,密钥分为加密密钥和解密密钥两种。发送者用加密密钥对消息...

2019-04-12 19:37:19 2856

原创 三、分组密码的模式

前面介绍的DES和AES都属于分组密码,它们只能加密固定长度的明文。如果需要加密任意长度的明文,就需要对分组密码进行迭代,而分组密码的迭代方法就称为分组密码的“模式”。分组密码有很多种模式,如果模式的选择不恰当,就无法保证机密性。例如,如果使用ECB模式,明文中的一些规律就可以通过密文被识别出来。分组密码的主要模式(ECB、CBC、CFB、OFB、CTR),最后再来考察一下到底应该使用哪一种...

2019-04-12 19:36:56 507

原创 二、对称加密

对称加密:也称为对称密码,是指在加密和解码时使用同一秘钥的加密方式1.DES1.1什么是DESDES一直以来被美国以及其他国家的政府和银行等广泛使用。然而,随着计算机的进步,现在DES已经能够被暴力破解,强度大不如前了。由于DES的密文可以在短时间内被破译,因此除了用它来解密以前的密文以外,现在我们不应该再使用DES了。1.2加密和解密DES是一种将64比特的明文加密成64比...

2019-04-12 19:36:27 351

原创 一、密码基础知识

1.加密三要素明文/密文加密之前的消息称为明文(plaintext),加密之后的消息称为密文(cipher-text)。秘钥定长的字符串需要根据加密算法确定其长度算法加密算法解密算法加密算法和解密算法有可能是互逆的, 也有可能相同2.对称加密秘钥: 加密解密使用的是同一个秘钥, 秘钥有一个特点双方向保证机密性加密效率高, 适合加密大数据, 大文...

2019-04-12 19:35:26 459

原创 二十、BoltDB k-v存储

Bolt 是一个纯粹的 Go key/value数据库。 该项目的目标是为不需要完整数据库服务器(如Postgres或MySQL)的项目提供一个简单,快速和可靠的数据库。如果您需要高随机写入吞吐量(> 10,000 w / sec)或者您需要使用旋转磁盘,则 LevelDB可能是一个不错的选择。 如果你的应用程序是重读的,或者做了很多范围扫描,Bolt 可能是一个不错的选择。Bolt ...

2019-04-12 19:34:01 508

原创 三、使用GitHub

1.注册GitHub账号GitHub的网址是:https://github.com/要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository。2.配置GitHub我们首先得生成公钥,然后复制到GitHub上然后我们才能无密码登录。在git bash中获取密匙的时候需要输入:ssh-keyg...

2019-03-06 14:36:27 351

原创 二、分支管理

1.创建与合并分支git把我们之前每次提交的版本串成一条时间线,这条时间线就是一个分支。截止到目前只有一条时间线,在git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。(1)一开始的时候,master分支是一条线,git用master指向最新的提交,再用HEAD指向master,就...

2019-03-06 14:35:51 364

原创 一、版本创建与回退

1.git简介git是目前世界上最先进的分布式版本控制系统。2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。Git和svn的区别:https://www.cnblogs.com/dazhidacheng/p/7478438.htmlGit是分布式版本控制系统,同一个Git仓库,可以分布到不同的...

2019-03-06 14:35:06 409

原创 十九、Beego框架快速入门

Beego框架快速入门1.框架了解go语言的web框架:beego,gin,echo等等,那为什么我们选择beego呢?第一,beego是中国人开发的,开发文档比较详细,beego官网网址: https://beego.me/ 。第二,现在公司里面用beego的也比较多,比如今日头条,百度云盘,腾讯,阿里等。2.环境搭建这里默认大家已经搭建好了go语言的开发环境。需要安装Bee...

2019-03-06 14:33:32 76477

原创 十八、C与GO混合编程

作为一门直接传承于C的语言,Go当然应该将与C语言的交互作为首要任务之一。Go确实也提供了这一功能,称为Cgo。由于cgo需要gcc支持,所以需要配置gcc环境,如果是linux下一般可以跳过该步骤,win下则需要自己安装了,这里我们使用MinGW由于我是64位,这里下载64位的POSIX版本。具体的安装过程就不费话了,直接解压即可。安装完成后需要配置环境变量${home}/binhttp...

2019-02-20 22:36:50 1303 2

原创 十七、连接数据库

1.GO连接MySQL因为Go语言没有提供任何官方数据库驱动,所以需要安装第三方函数库。需要安装git软件,安装过程一直点击下一步即可。安装完成后需要配置环境变量${git_home}/bin设置GOPATH的环境变量,这样驱动才会下载到项目根目录中。在cmd命令窗口中输入如下命令安装驱动:go get github.com/go-sql-driver/mysql执行完上面这个命令就会...

2019-02-20 22:36:28 310

原创 十六、反射

1.基本用法func main() { var x float64 = 3.4 //1.获取类型信息 fmt.Println("type:", reflect.TypeOf(x)) //type: float64 v := reflect.ValueOf(x) fmt.Println("type:", v.Type()) /...

2019-02-20 22:36:01 202

原创 十五、JSON处理

1、编码为JSON格式使用json.Marshal()函数可以对一组数据进行JSON格式的编码。Go语言的大多数数据类型都可以转化为有效的JSON文本,但channel、complex和函数这几种类型除外。如果转化前的数据结构中出现指针,那么将会转化指针所指向的值,如果指针指向的是零值,那么null将作为转化后的结果输出。结构体会转化为JSON对象,并且只有结构体里边以大写字母开头的可被...

2019-02-20 22:35:40 230

原创 十四、爬虫

1.爬取百度贴吧//HTTP网页请求func HttpGet(i int, url string) (result string, err error) { resp, err1 := http.Get(url) if err1 != nil { err = err1 //将封装函数内部的错误,传出给调用者。 fmt.Println("http.Get err:", err) ...

2019-02-20 22:35:21 266

原创 十三、网络聊天室

服务端package mainimport ( "net" "fmt" "strings" "time")//创建用户结构体类型type Client struct { C chan string Name string Addr string}//创建全局map,存储在线用户var onlineMap map[string]Client//创建全...

2019-02-20 22:34:49 237

原创 十二、网络编程

1.TCP编程服务器:func main() { //指定服务器通信协议、IP地址、端口号 listener, err := net.Listen("tcp", "127.0.0.1:8000") if err != nil { fmt.Println(err) return } defer listener.Close() //关闭 //阻塞监听客户端连接请求 c...

2019-02-20 22:34:24 213

原创 十一、并发编程

1.goroutineGo 语言在语言级别支持轻量级线程,叫goroutine。在一个函数调用前加上go关键字,这次调用就会在一个新的goroutine中并发执行。当被调用的函数返回时,这个goroutine也自动结束了。需要注意的是,如果这个函数有返回值,那么这个返回值会被丢弃。创建于进程中。直接使用 go 关键,放置于函数调用前面,产生一个 go程(并发)。goroutine的特...

2019-02-20 22:33:43 182

原创 十、字符串操作

1.字符串操作在对字符串进行处理时,需要借助于包“strings”1.1 Containsfunc Contains(s, substr string) bool功能:字符串s中是否包含substr,返回bool值func main() { str := "hello world" fmt.Println(strings.Contains(str, "hello")) //t...

2019-01-18 21:30:57 252

原创 九、文本文件处理

1.创建文件GO语言中提供了一个Create( )函数专门创建文件.该函数在创建文件时,首先会判断要创建的文件是否存在,如果不存在,则创建,如果存在,会先将文件中已有的数据清空。同时,当文件创建成功后,该文件会默认的打开,所以不用在执行打开操作,可以直接向该文件中写入数据。package mainimport ( "os" "fmt")func CreateFile(pa...

2019-01-18 21:30:36 326 1

原创 八、异常处理

1.error接口package mainimport ( "fmt" "errors")func Test(a int, b int) (result int, err error) { err = nil if b == 0 { err = errors.New("除数不能为0") //当然fmt包中也封装了一个专门输出错误信息的方法,如下所示: //err =...

2019-01-17 21:08:06 265

原创 七、面向对象

严格意义上说,GO语言中没有类(class)的概念,但是我们可以将结构体比作为类,因为在结构体中可以添加属性(成员),方法(函数)。当然严格意义上,GO语言中是没有继承的,但是我们可以通过”匿名组合”来实现继承的效果。1.继承//继承type Person struct { id int name string age int}/** 通过匿名字段实现了继承,将公共...

2019-01-17 21:07:29 170

原创 六、复合数据类型

1.数组func main() { var a [10] int = [10] int{1, 2, 3, 4, 5, 5, 4, 3, 2, 1} for index, data := range a { fmt.Println(index, ":", data) } //部分初始化,没有初始化的元素,自动赋值为0 b := [10] int{1, 2, 3, 3, 2, 1}...

2019-01-17 21:06:24 224

原创 五、包

工程管理为了更好的管理项目中的文件,要求将文件都要放在相应的文件夹中。GO语言规定如下的文件夹如下:(1)src目录:用于以代码包的形式组织并保存Go源码文件。(比如:.go .c .h .s等)(2)pkg目录:用于存放经由go install命令构建安装后的代码包(包含Go库源码文件)的“.a”归档文件。(3)bin目录:与pkg目录类似,在通过go install命令完成安装后,保...

2019-01-17 21:05:30 180

原创 四、函数

1.普通参数列表func main() { car("奔驰") car("宝马")}func car(name string) { fmt.Println(name, ",汽车开跑了。。。")}2.不定参数列表使用不定参数时,一定(只能)放在形参中的最后一个参数。在对函数进行调用时,固定参数必须传值,不定参数可以根据需要来决定是否要传值。func main() { ...

2019-01-17 21:04:47 200

原创 三、流程控制

1.if语句func main() { //if支持一个初始化语句,初始化语句和判断条件以分号分隔 if score := 97; score >= 90 && score <= 100 { fmt.Println("本次考试,等级为A") } else if score >= 80 && score < 90 { fmt.P...

2019-01-17 21:04:19 174

原创 二、变量、基本数据类型、常量、运算符

1.变量package mainimport "fmt"func main() { fmt.Println("定义变量") var a int = 10 //定义一个变量a同时将整数10赋值给a var b, c int //定义完变量b,c后,再对其赋值 b = 20 c = 30 fmt.Println("a =", a) fmt.Println("b =", b)...

2019-01-17 21:03:30 315

原创 一、第一个GO程序

Golang开发工具及资料Go语言官网(需要翻墙):https://golang.org/go中文社区:https://studygolang.comgo中文在线文档:https://studygolang.com/pkgdoc环境安装有zip压缩版和msi安装版两个按本下载。(这里使用msi安装版,比较方便)。运行msi安装文件,千万不要在安装路径中出现中文,一路Next。设...

2019-01-17 21:02:36 252

原创 十二、MapReduce详细工作流程

MapReduce程序运行流程分析1)在MapReduce程序读取文件的输入目录上存放相应的文件。2)客户端程序在submit()方法执行前,获取待处理的数据信息,然后根据集群中参数的配置形成一个任务分配规划。3)客户端提交job.split、jar包、job.xml等文件给yarn,yarn中的resourcemanager启动MRAppMaster。4)MRAppMaster启动后...

2019-01-01 09:10:49 642

原创 十一、MapReduce开发总结

一、大量小文件的优化策略默认情况下,每一个输入文件单独切片。切片大小=blocksize=128M。每次切片时,都要判断切完剩下的部分是否大于块(128M)的1.1倍,不大于块(128M)的1.1倍就划分一块切片。比如一个257M的文件,就切为2块:128M + 129M默认情况下,TextInputformat对任务的切片机制是按文件规划切片,不管文件多小,都会是一个单独的切片,都会提交一...

2019-01-01 09:10:18 886 1

原创 十、MapReduce实战篇-端表合并

多表连接订单表 order.txt订单id、商品id、数量1001 01 11002 02 21003 03 31001 02 21002 03 31003 03 5商品表 produce.txt商品id、商品名称01 小米02 华为03 格力将商品表中数据根据商品id合并到订单数据表中。最终数据形式:订单id、商品id、数量、商品名称1001 01...

2018-12-31 01:56:15 283

原创 九、MapReduce实战篇-最贵商品

测试数据Order_0000001 Pdt_01 222.8Order_0000002 Pdt_05 722.4Order_0000001 Pdt_05 25.8Order_0000003 Pdt_01 333.8Order_0000003 Pdt_01 33.8Order_0000002 Pdt_03 522.8Order_0000002 Pdt_04 122.4需求分析需...

2018-12-31 01:55:31 345

原创 八、MapReduce实战篇-流量汇总

流量汇总需求:统计每一个用户(手机号)所耗费的总上行流量、下行流量,总流量1.在mapper和reducer之间传递多个value值序列化:自己实现了Writable接口(FlowSumBean),在mapper和reducer之间传递一个Bean对象。也可以拼接字符串的方式来实现写出多个值。2.将统计结果按照手机归属地不同省份输出到不同文件中分区:自己实现了Partitioner分...

2018-12-31 01:54:36 445

原创 七、MapReduce实战篇-单词计数

环境准备开发MapReduce程序,需要Java环境,通常也就是在eclipse中新建一个Java Project工程jar包准备1)解压hadoop-2.7.2.tar.gz到非中文目录2)进入share\hadoop文件夹,查找所有jar包,并把jar包拷贝到_lib文件夹下3)在全部jar包中查找.source.jar,并剪切到_source文件夹。4)在全部jar包中查找...

2018-12-31 01:53:22 1453

原创 六、HDFS其他功能

集群间数据拷贝采用discp命令实现两个hadoop集群之间的递归数据复制hadoop distcp hdfs://cmaster0:8020/user/hadoop/hello.txt hdfs://hadoop102:9000/user/hadoop/hello.txtHadoop存档每个文件均按块存储,每个块的元数据存储在namenode的内存中,因此hadoop存储小文件会非...

2018-12-27 19:41:43 189

《Oracle Wait Interface性能诊断与调整实践指南》

《Oracle Wait Interface性能诊断与调整实践指南》

2012-12-17

《ORACLE SQL 高级编程》随书脚本

《ORACLE SQL 高级编程》随书脚本 英文版叫《pro oracle sql》 想要精通oracle sql必读书籍!

2012-12-17

ORACLE SQL 高级编程

《pro oralce sql》经典书籍的中文版《ORACLE SQL 高级编程》! 找了好久才找到的书籍,是中文的,英文瞥的童鞋也可以看的!

2012-12-17

java面试宝典

java面试宝典,面试的时候必备资料!

2012-12-17

Linux Shell脚本攻略(pdf书+源码)

Linux Shell脚本攻略(pdf书+源码)

2012-12-17

redhat5.4 Oracle 10G Data Guard 配置

redhat5.4 Oracle 10G Data Guard 配置 redhat5.4+Oracle 10g 我自己写的 里面带截图 详细到每一步!!!

2011-09-21

oracle常用函数大全

oracle常用函数大全 包含了oracle常用的100多个函数

2011-02-13

oracle高级sql学习

1.集合操作 2.EXISTS和NOT EXISTS的使用 3.WITH子句 4.MERGE INTO合并资料 5.层次查询(HIERARICAL RETRIVAL) 6.DECODE函数和行列互换 7.CASE表达式 8.ROWNUM—TOP-N分析 9.相关子查询和非相关子查询 10.增强的GROUP BY 11.分析函数(ANALYTICAL FUNCTIONS) 12.ROWID的使用 13. ORACLE10G正则表达式 14.使用HINT 15.PARITION分区 16.并行操作 17.扩展DDL和DML语句 18.MODEL语句 19.10G闪回查询 20.专题—行列转换 21.专题—连续值和累计值问题 22.专题—NULL和DUAL详 23.专题—时间、数字、字符格式详解 24.专题—ORACLE字符集问题 25.专题-随机值查询

2011-02-13

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

TA关注的人

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