<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[William Blake]]></title><description><![CDATA[热爱技术 热爱分享 ]]></description><link>https://blog.youkuaiyun.com/qq_45828877</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_45828877]]></copyright><item><title><![CDATA[system/bin/sh: adb: not found]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/104550635</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/104550635</guid><author>qq_45828877</author><pubDate>Fri, 28 Feb 2020 09:58:51 +0800</pubDate><description><![CDATA[adb push/pull指令不能在adb shell下使用
exit退出adb shell
输入adb remount变为可读可写模式即可

]]></description><category></category></item><item><title><![CDATA[原生JS请求JSON]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/104511969</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/104511969</guid><author>qq_45828877</author><pubDate>Wed, 26 Feb 2020 10:33:16 +0800</pubDate><description><![CDATA[利用ajax解析xml进行
function loadConfig() {
		return new Promise((resolve, reject) =&gt; {
		  let xhr = new XMLHttpRequest();
		  xhr.overrideMimeType('application/json');//设置请求头
		  xhr.open('GET', '../it...]]></description><category></category></item><item><title><![CDATA[《区块链宝典》共识算法（二)]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/104057675</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/104057675</guid><author>qq_45828877</author><pubDate>Tue, 21 Jan 2020 01:26:00 +0800</pubDate><description><![CDATA[共识算法的目的

共识算法的目的


利用区块链构造去中心化的账本，首先需要解决如何实现不同节点上账本一致性和正确性

这就需要借鉴传统的分布式系统中的一致性算法，确定网络中选择记账节点的机制，以及如何保障账本数据的一致性和正确性


区块链解决了在不可信信道上传输可信信息、价值转移的问题，儿共识机制解决了区块链如何在分布式尝尽夏大程一致性问题。

区块链的伟大之处就是它的共识机制在去中心化的思想...]]></description><category></category></item><item><title><![CDATA[《区块链宝典》共识算法（一）]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/104057151</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/104057151</guid><author>qq_45828877</author><pubDate>Tue, 21 Jan 2020 00:18:04 +0800</pubDate><description><![CDATA[前言：区块链系统是一种分布式架构系统，分布式系统中，多个主机通过异步通信的方式组成网络集群，异步通信要保证每个主机达成一致的状态共识。区块链这种基于互联网的去中心化系统，需要解决的首要问题就是如何实现不同节点上数据的一致性和正确性，这就需要借鉴分布式系统中实现状态共识的算法。
可以毫不夸张的讲，学习区块链就必须掌握共识算法


一、什么是共识算法？
（一）、分布式系统


区块链系统本质就是一个...]]></description><category></category></item><item><title><![CDATA[Go椭圆曲线数字签名、验证]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/104026154</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/104026154</guid><author>qq_45828877</author><pubDate>Sat, 18 Jan 2020 01:07:56 +0800</pubDate><description><![CDATA[椭圆曲线数字签名及验证
1.生成私钥和公钥

生成椭圆曲线对象
生成密钥对，返回私钥对象
编码生成公钥字节数组，参数是椭圆曲线、x坐标、y坐标

2.ECDSA数字签名

数字签名生成r、s的big.Int对象，参数是随机数、私钥、签名文件的哈希串
将r、s转成r、s字符串
r和s字符串凭借，形成数字签名的der格式

3.生成签名的DER编码格式

获取r和s的长度
计算DER序列的总长度
将1...]]></description><category></category></item><item><title><![CDATA[Base64、Base58原理及GO实现其加密解密]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103997621</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103997621</guid><author>qq_45828877</author><pubDate>Thu, 16 Jan 2020 01:12:47 +0800</pubDate><description><![CDATA[Base64
1.Base64就是一种基于64个可打印的字符来表示二进制数据的方法

Base64使用了26个字母、26个大写字母、10个数字以及两个符号（+、/），用语在电子邮件这样的基于文本的媒介中传输二进制数据。
Base64通常用于编码邮件中的附件。

2.Base64的步骤

将每个字符转成ASCII编码（10进制）
将10进制编码转成2进制编码
将2进制编码按照6位一组进行平分
将6位...]]></description><category></category></item><item><title><![CDATA[Go实现RSA数字签名算法（附代码）]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103965407</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103965407</guid><author>qq_45828877</author><pubDate>Mon, 13 Jan 2020 23:13:49 +0800</pubDate><description><![CDATA[数字签名如何工作

数字签名由两部分组成:

使用私钥从消息创建签名的算法；
允许任何人验证签名的算法;



数字签名应该满足的要求

签名不可伪造性
签名不可抵赖性
签名可信任，签名的识别应用相对容易，任何人都可以验证签名的有效性
签名不可复制、签名与原文是不可分割的整体；
签名消息不可篡改，因为任意比特数据被篡改，其签名便被随之改变，那么任何人可以验证而拒绝接受此签名。

RSA数字签名的核...]]></description><category></category></item><item><title><![CDATA[GO实现非对称加密--RSA加密解密算法]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103951958</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103951958</guid><author>qq_45828877</author><pubDate>Mon, 13 Jan 2020 02:21:02 +0800</pubDate><description><![CDATA[package main

import (
	"crypto/rand"
	"crypto/rsa"
	"crypto/x509"
	"encoding/base64"
	"encoding/pem"
	"errors"
	"fmt"
	"io/ioutil"
)

func main()  {
	str := "&amp;^%$#@___Oneck___@#$%^&amp;"
	fmt.Pri...]]></description><category></category></item><item><title><![CDATA[GO实现非对称加密--RSA生成公钥私钥]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103951512</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103951512</guid><author>qq_45828877</author><pubDate>Mon, 13 Jan 2020 00:58:46 +0800</pubDate><description><![CDATA[package main

import (
	"crypto/rand"
	"crypto/rsa"
	"crypto/x509"
	"encoding/pem"
	"flag"
	"log"
	"os"
)

func main()  {
	if err := GenerateRSAKey(); err != nil {
		log.Fatal("密钥生成失败")
	}
	log.Printl...]]></description><category></category></item><item><title><![CDATA[GO实现对称加密DES/3DES/AES]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103950467</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103950467</guid><author>qq_45828877</author><pubDate>Sun, 12 Jan 2020 22:19:15 +0800</pubDate><description><![CDATA[package main

import (
	"bytes"
	"crypto/aes"
	"crypto/cipher"
	"crypto/des"
	"encoding/base64"
	"fmt"
)

func main()  {
	//DES密钥

	//DES
	key := "12345678"

	//3DES
	//key := "abcdefgh012345671234567...]]></description><category></category></item><item><title><![CDATA[Javascript实现css/js/html懒加载]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103869898</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103869898</guid><author>qq_45828877</author><pubDate>Tue, 07 Jan 2020 10:36:36 +0800</pubDate><description><![CDATA[纯js实现css/js/hmtl懒加载，现在很多前端框架都有封装好的懒加载方式，那么原生该如何实现呢？话不多说　上代码～
'use strict';
var LazyLoader = (function() {

  function LazyLoader() {
    this._loaded = {};
    this._isLoading = {};
  }

  LazyLoader....]]></description><category></category></item><item><title><![CDATA[如何在LINUX系统下截图]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103405212</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103405212</guid><author>qq_45828877</author><pubDate>Thu, 05 Dec 2019 15:15:31 +0800</pubDate><description><![CDATA[在不下载应用、插件情况下,使用系统自带按键指令进行截图
全屏截图:Fn+PrintScreen
例:

选择截屏:Shift+Fn+PrintScreen
例:


]]></description><category></category></item><item><title><![CDATA[原生js video获取当前视频时间进度和视频总时长]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103404439</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103404439</guid><author>qq_45828877</author><pubDate>Thu, 05 Dec 2019 14:44:19 +0800</pubDate><description><![CDATA[0:00
0:00
js代码
$(document).ready(function(){
$("#video-active").on(
“timeupdate”,
function(event){
onTrackedVideoFrame(this.currentTime, this.duration);
});
}
function onTrackedVideoFrame(currentTi...]]></description><category></category></item><item><title><![CDATA[Java实现聊天工具]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103396441</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103396441</guid><author>qq_45828877</author><pubDate>Thu, 05 Dec 2019 00:28:44 +0800</pubDate><description><![CDATA[此demo是基于TCP Socket的聊天案例，首先客户端通过键盘输入字符串，通过标准输入流读取字符串，然后通过Socket获得输出流，将字符串写入输出流。接着服务器通过Socket获得输入流，从输入流中读取来自客户端发送的字符串，然后通过输出流输出到控制台
服务器端代码如下：
package socketChat;

import java.io.DataInputStream;
import ...]]></description><category></category></item><item><title><![CDATA[JAVA文件管理]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103378212</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103378212</guid><author>qq_45828877</author><pubDate>Wed, 04 Dec 2019 00:15:23 +0800</pubDate><description><![CDATA[文件管理
Java使用File类对文件和目录进行操作，当查找文件时需要时间FilenameFilter或FileFilter接口。读写文件内容可以通过FileInputStream、FileOutputStream、FileRender、FileWriter类实现
1.File类
File类表示一个文件或目录
1.1构造方法

File（String path）:如果path是实际存在的路径，那么...]]></description><category></category></item><item><title><![CDATA[Java常用类详解]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103359396</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103359396</guid><author>qq_45828877</author><pubDate>Tue, 03 Dec 2019 01:40:43 +0800</pubDate><description><![CDATA[Java根类-object
首先介绍的常用类就是java.long.Object类，它是Java所有类的根，Java所有类直接或间接继承于Object。
object有很多方法，比较常用的方法如下：

String toString() : 返回该对象的字符串表示类型；
boolean equals(OBJ obj) ： 指示其他某个对象是否与此对象"相等"
不过这些方法都是需要在子类用来覆盖的
...]]></description><category></category></item><item><title><![CDATA[Java数据类型，只需看这一篇]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103337029</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103337029</guid><author>qq_45828877</author><pubDate>Sun, 01 Dec 2019 19:33:05 +0800</pubDate><description><![CDATA[基本数据类型
	基本数据类型表示简单的数据，基本数据类型分为4大类，共有8种数据类型。


整数类型:byte、short、int、long
浮点类型:float、double
字符类型:char
布尔类型:boolean

基本数据类型如下图所示，其中整数类型、浮点类型、字符类型都属于数值类型他们之间可以相互转换

整数类型
java中整数类型包括byte、short、int、long，其实他们...]]></description><category></category></item><item><title><![CDATA[Eclipse安装中文包]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103334230</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103334230</guid><author>qq_45828877</author><pubDate>Sun, 01 Dec 2019 13:33:17 +0800</pubDate><description><![CDATA[Eclipse界面默认英文，这对于初学者来说会有一定难度，Eclipse平台提供了一个语言包项目-Eclipse Project
插件安装过程如下
启动Eclipse,选择Help–&gt;Install New Software系统弹出下列对话框，点击Add
在Location中输入http://download.eclipse.org/technology/babel/update-site/...]]></description><category></category></item><item><title><![CDATA[JAVA安装搭建环境全攻略]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103331030</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103331030</guid><author>qq_45828877</author><pubDate>Sun, 01 Dec 2019 11:55:59 +0800</pubDate><description><![CDATA[1、安装JDK工具包
JDK工具包是最基础的java开发工具，很多javaIDE工具 例:Eclipse、IntelliJ IDEA、NetBeans都依赖与JDK
1.1、JDK的下载与安装

打开Oracle官网对应下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html...]]></description><category></category></item><item><title><![CDATA[**详解**node---最少的代码实现聊天室]]></title><link>https://blog.youkuaiyun.com/qq_45828877/article/details/103319386</link><guid>https://blog.youkuaiyun.com/qq_45828877/article/details/103319386</guid><author>qq_45828877</author><pubDate>Fri, 29 Nov 2019 23:33:55 +0800</pubDate><description><![CDATA[1.首先我们在目录下创建一个package.json文件
{
    "name": "tcp-chat",
    "description": "Our first TCP server",
    "version": "0.0.1"
}

运行cnpm install运行一下，结果输出一个空行，这是因为项目没有任何依赖
2.接着我们创建一个包含如下代码的index.js文件
server....]]></description><category></category></item></channel></rss>