- 博客(50)
- 收藏
- 关注
原创 236-加密之https单向认证
加密之https单向认证我们先试一下开启http服务func handler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "This is my http web.")}func main() { http.HandleFunc("/", handler) http.ListenAndS...
2019-01-19 19:41:03 297
原创 235-java并发之并行WebServer和Executor框架
java并发之并行WebServer和Executor框架我们先来一个简单的串行单线程WebServerpublic class WebServer { public static void main(String[] args) throws IOException { ServerSocket socket = new Se...
2019-01-18 16:15:17 159
原创 234-java并发入门
java并发入门我们先说一下java并发的安全性问题举个例子我们先来看一下一段代码 SingleSequence singleSequence = new SingleSequence(); String listString = singleSequence.getListString(); System.out....
2019-01-18 15:12:11 218
原创 233-加密之数字签名
加密之数字签名在说数字签名之前先说一下 消息认证码 的局限性A和B都持有密钥所以不能判断消息是由A生成的还是B生成的所以可以这样A持有一个私钥,B持有一个公钥只有A才可以生成消息,B只能验证消息这样的话就可以保证消息都是A生成的这就是数字签名的技术非对称加密 和 数字签名假设有A 和 B C D非对称加密是B C D持有公钥,进行加密...
2019-01-17 20:22:56 505
原创 232-加密之单向散列函数
加密之单向散列函数单向散列函数什么是单向散列函数one-way function有一个输入,,,有一个输出输入的称为消息message,输出的称为散列值,也叫哈希值 hash-value单向散列函数可以根据消息的内容计算出散列值而散列值可以用来检查消息的完整性单向散列函数的应用1.消息认证码2.数字签名3.伪随机数生成器4.一次性口令5.密...
2019-01-17 19:57:49 490 3
原创 231-go语言中使用Base64
go语言中使用Base64Base64编码,是我们程序开发中经常使?到的编码?法。因为base64编码的字符串,更适合不同平台、不同语?的传输(?个字符可能其他的系统没有)。它是?种基于?64个可打印字符来表示?进制数据的表示?法。它通常?作存储、传输?些?进制数据编码?法,?句话:将?进制数据?本化(转成ASCII)。func main() { t...
2019-01-17 19:39:28 252
原创 230-go语言中使用HMAC
go语言中使用HMAC我们先说一下要使用的两个函数第一个hmac.New函数func New(h func() hash.Hash, key []byte) hash.Hash我们来看下源码// New returns a new HMAC hash using the given hash.Hash type and key.// Note that u...
2019-01-17 19:29:03 1897
原创 229-加密之消息认证码MAC和HMAC
加密之消息认证码MAC和HMAC消息认证码什么是消息认证码???我们来举个例子我们假设现在有两家银行 银行A和银行B如果现在银行A给银行B发送了一条请求 张三给李四汇款1000元银行B接收到这个请求就会执行 张三给李四汇款1000元如果现在有一个黑客伪装成银行A 也发送了这样的请求那么银行B就必须要验证这条消息是不是银行A发送的所以就要用到消息认证码...
2019-01-17 19:12:44 1590
原创 228-非对称加密之RSA
非对称加密之RSARSARSA加密算法是1977年由Ron Rivest、Adi Shamir、Leonard Adleman这三个人一起提出的,所以叫RSARSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公...
2019-01-17 11:39:24 222
原创 227-加密之DES加密CBC模式
加密之DES加密CBC模式我们来试试通过DES算法加密配合的是CBC分组模式我们先把基本的三个步骤和方法写出来1.明文2.加密3.密文func main() { text := "你好!世界! hello world" key := "abcabc123123" iv := "iviviv123123" cipherText := Encry...
2019-01-16 21:07:06 5300 1
原创 226-encryption加密之分组模式
encryption加密之分组模式之前我们说的DES,AES都是属于分组密码他们只能加密固定长度的明文所以如果我们要加密任意长度的明文我们要对密码进行分组迭代加密这种分组迭代加密的方法就称为分组密码的模式也就是分组模式分组模式主要有1.ECB 电子密码本模式2.CBC 密文分组链接模式3.CFB 密文反馈模式4.OFB 输出反馈模式5....
2019-01-16 19:33:51 192
原创 225-encryption加密入门
encryption加密入门今天我们来了解一下加密英文encryption加密的三要素1.明文2.加密算法3.秘钥加密算法有很多,比如des3desaes加密方式主要有两种对称加密与非对称加密对称加密就是加密与解密是同一把锁这样的话就不太安全因为如果这把秘钥丢了那么就很容易被解密非对称加密有两把秘钥一把公钥,可以公开一...
2019-01-16 19:32:58 454
原创 224-android设置状态栏颜色
android设置状态栏颜色我们先来看看官方文档setStatusBarColoradded in API level 21public abstract void setStatusBarColor (int color)Sets the color of the status bar to color. For this to take effect, the wi...
2019-01-15 18:56:10 188
原创 223-beego增删改查操作数据
beego增删改查操作数据ShowUserCenterOrdervar goods []map[string]interface{}//获取订单数据o := orm.NewOrm()//获取用户名userName := this.GetSession("userName").(string)//定义一下var orderInfos []models.O...
2019-01-14 16:26:26 757
原创 222-Nginx和fastDFS相关命令
Nginx和fastDFS相关命令首先我们查看一下nginx的进程ps aux | grep nginx然后我们看到nginx应该有两个进程一个是nginx:master 主进程一个是nginx:worker 工作进程如果没有这两个进程那么我们得开启nginx我们先进入sbin目录cd /usr/local/nginx/sbin/然后sudo ./n...
2019-01-12 20:01:25 168
原创 221-jquery增删手动输入数据
实现一下减少商品$(".minus").click(function(){ //获取原来数量并减去一个 count = $(this).prev().val() count = parseInt(count) - 1 if (count <1){ count = 1 } //给后台发送数据 goodsId = $(this).prev().attr(...
2019-01-12 16:15:04 133
原创 220-beego结合jquery操作数据
beego结合jquery操作数据我们来写一下js先来写script标签其实我们的script标签是可以写在html标签外面的所以我们可以直接写在html标签外面<html></html><script type="text/javascript" src="/js/jquery-1.12.4-min.js"></...
2019-01-12 14:40:13 577
原创 219-json文件导入mysql
json文件导入mysql一个头疼的问题解决了很久我现在有一个data.json里面有很多的数据,这个data.json是utf8的导入数据库后也是显示正常的但是读取出来返回到客户端就乱码了其实我觉得可能是我客户端的问题但是我客户端请求也是utf8的拿到的response也是utf8的我也不知道到底是什么问题所以我最终只能想了一个办法就是用代码...
2019-01-11 11:39:52 1557
原创 218-CentOS查看防火墙开启端口
CentOS查看防火墙开启端口我们先查看一下当前的防火墙有哪几个端口是打开的 firewall-cmd --zone=public --list-ports然后我们开启一个端口比如8080firewall-cmd --zone=public --add-port=8080/tcp --permanent开启之后我们要重新载入一下防火墙firewall...
2019-01-10 20:25:37 147
原创 217-beego分页校验自增Jquery
beego分页校验自增Jquerystart = (pageIndex-1)*pageSize qs.Limit(pageSize,start).All(&goods)//实现页码显示<a href="/list?pageIndex={{$value}}" >preIndex := pageIndex-1nextIndex := pageIndex+...
2019-01-10 20:25:11 227
原创 216-beego列表去重筛选
beego列表去重筛选func (this *GoodsController) ShowIndex(){username := this.GetSession("username")if username==nil{ this.Data["username"]=""}else{ this.Data["username"]=username.(string)}...
2019-01-09 21:49:29 889 2
原创 215-beego登录记住用户名
beego登录记住用户名本来这是一个非常非常简单的业务但是自己太粗心结果搞了好久真是无语开始吧首先我们有登录业务<form method="post" action="/login"> <input type="text" name="username" class="name_input" placeholde
2019-01-09 09:09:36 695
原创 214-beego编辑显示地址
beego编辑显示地址beego.Router("/goods/addSite", &controllers.UserController{})func (this *UserController) HandleSite(){//1.获取//2.校验//3.处理//4.返回//获取数据receiver := this.GetString("receiver...
2019-01-07 21:05:52 137
原创 213-二进制文件
二进制文件二进制文件就是包含在 ASCII及扩展 ASCII 字符中编写的数据或程序指令的文件计算机文件一般都分为两种1.二进制文件2.ASCII文件(纯文本文件)图形文件及文字处理程序等计算机程序都属于二进制文件这些文件含有特殊的格式及计算机代码ASCII 则是可以用任何文字处理程序阅读的简单文本文件广义的二进制文件即指文件,由文件在外部设备的存放...
2019-01-07 21:05:13 431
原创 212-fastDFS安装使用
fastDFS安装使用fastDFS是用c语言编写的一款开源的分布式文件系统fastDFS为互联网量身定制,考虑了1.冗余备份2.负载均衡3.线性扩容等机制使用fastDFS很容易可以搭建一套高性能的文件服务器集群来提供文件上传,下载等服务优点:FastDFS架构包括Tracker server和Storage server客户端请求Tracker ser...
2019-01-07 20:56:17 177
原创 211-beego信息与地址
beego信息与地址func (this *GoodsController) ShowIndex(){ this.TplName="index.html"}我们可以从session中获取用户名username := this.GetSession("username")user := getUser(username.(string))然后我们获取一下地址信息...
2019-01-06 16:48:03 274 1
原创 210-beego登录退出与过滤器
beego登录退出与过滤器4个步骤1.获取2.校验3.处理4.返回func (this *UserController) HandleLogin(){//获取数据username := this.GetString("username")password := this.GetString("pwd")//校验数据if username =="" ||pa...
2019-01-06 15:57:27 1674 7
原创 209-beego邮件校验激活
beego邮件校验激活注册过程中把用户的信息都存储到数据库中之后需要给用户发一封邮件然后告诉用户去邮箱里面激活这样做的好处是可以判断用户在注册的时候输入的邮箱是否正确然后以后如果要推出什么新产品就可以给用户发送邮件这个过程是这样的beego服务器--->STMP服务器--->目的邮箱STMP服务器就是邮件代发服务器一般由邮件服务...
2019-01-06 15:48:17 876 8
原创 208-beego用户注册校验
beego用户注册校验页面说明1.index2.list3.detail4.cart5.place_order6.login7.register8.user_center_info9.user_center_order10.user_center_site先来看一下js在该注册页面中,包含了用户注册时需要填写的信息,例如:用户名,密码,密码确认,...
2019-01-06 15:10:14 584 1
原创 207-五种不同的邮箱正则
五种不同的邮箱正则 reg, err := regexp.Compile(`^[a-z0-9A-Z]+[- | a-z0-9A-Z . _]+@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-z]{2,}$`) reg, err := regexp.Compile(`^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-...
2019-01-06 10:55:44 843
原创 206-git的BUG分支及stash
git的BUG分支及stash假设我们在开发的过程中遇到了一个紧急BUG需要修复比如现在我们需要修复一个代号为001的BUG那么我就要创建一个分支BUG-001来修复这个BUG但是我们现在正在dev这个分支上进行开发而且还没有提交那么应该怎么办呢git提供了一个stash功能可以把当前的工作现场保存起来等以后需要的时候,就恢复这个工作现场我们执行g...
2019-01-05 22:51:19 96
原创 205-git解决冲突
git解决冲突现在我们有一个master,有一个test1.txt内容是hello01hello02然后我们创建一个分支dev,然后编辑test1.txt,然后在这个dev上增加hello01hello02helloworld-dev然后我们提交一下git add code.txtgit commit -m 'commit dev'然后我们切换...
2019-01-05 19:57:38 936 2
原创 204-git分支管理
git分支管理git把我们每次提交的版本串成一条时间线这个时间线就是一个分支我们创建完版本库之后如果直接就在默认的分支上面提交那么现在我们操作的就是主分支也就是 master分支HEAD严格来说,不是指向提交而是指向了mastermaster才是指向提交所以HEAD指向的就是当前的分支一开始的时候master分支是一条线git用master指向...
2019-01-05 19:46:14 210 3
原创 203-git基本命令执行
git基本命令执行安装gitsudo apt-get install git安装成功后,执行git然后我们创建一个版本库git init然后会在目录下创建一个.git隐藏目录这就是版本库目录然后我们创建一个文件text.txtvim test.txt然后我们添加文件git add test.txt然后我们提交一下git comm...
2019-01-05 19:27:46 576 3
原创 202-git版本库repository
git版本库repository工作区有一个隐藏目录.git这个不是工作区,而是git的版本库git的版本库保存了很多东西最重要的就是被称为index(或者stage)的暂存区还有git为我们自动创建的第一个分支master以及指向这个master的一个指针,HEAD因为我们创建git版本库的时候git自动为我们创建了唯一一个master分支所以,现在g...
2019-01-05 19:27:19 101
原创 201-redis集群服务器
redis集群服务器1.提供服务器抵抗灾害的能力2.提高效率我们来搞两台虚拟机然后各搞3个redis服务一共6个redis服务//先查看??的 gem 源是什么地址gem source -l // 如果是https://rubygems.org/ 就需要更换// 更换指令为gem sources --add https://gems.ruby-c...
2019-01-04 12:52:51 143
原创 200-beego读取json快速插入数据库
读取json快速插入数据库如果不使用事务,直接插入效率会非常慢所以应该先开启事务然后将数据全部插入之后再提交事务 //创建orm对象 o := orm.NewOrm() //开启事务 o.Begin() //遍历切片,将cmt插入到数据库 for i := 0; i < len(comments); i++ { cmt := com...
2019-01-04 12:52:00 1027
原创 199-mysql的清空与删除
mysql的清空与删除在mysql中,有两种方式对表进行清空和删除1.truncate2.delete语法是这样的1.truncate table tb_test;2.delete * from tb_test;那么这两种方式有什么区别呢一.truncate是整体删除,速度较快delete是逐条删除,速度比较慢二.truncate不写服务器logd...
2019-01-04 11:42:55 183
原创 198-redis主从服务器
redis主从服务器 假设读写比例是10:1那么读的就很多写的就比较少那么我们就需要1个主服务器很多的从服务器这样的话1个主服务器来处理写很多的从服务器来处理读注意:主服务器 读写 都可以处理从服务器可以处理 读主服务器redis-cli -h 192.168.000.000 -p 6379从服务器redis-cli -h 192.168....
2019-01-03 20:59:13 208
原创 197-redis序列化和反序列化
redis序列化和反序列化序列化//容器var buffer bytes.Buffer//编码器enc := gob.NewEncoder(&buffer)//编码err := enc.Encode(dest)反序列化//解码器dec := gob.NewDecoder(bytes.NewReader(buffer.bytes()))...
2019-01-03 20:58:42 824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人