自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Java Web 实现 HTTP Basic 认证

Basic 认证是一种较为简单的 HTTP 认证方式,客户端通过明文(Base64 编码格式)传输用户名和密码到服务端进行认证,通常需要配合 HTTPS 来保证信息传输的安全。界面如下。 下面基于 Servlet 标准 Filter 实现一个 HTTP Basic 登录机制,可以用作测试时的临时...

2020-07-03 16:44:55 25 0

转载 部署时决定-插件机制

什么是插件 如果我们的项目依赖了一个接口,但是我们在开发时,真的没办法确定,部署的时候,到底采用哪个实现。比如 Nutz 的 Log。 它在运行时,会判读当前运行环境 log4j 是否可用(有 log4j 的org.apache.log4j.Logger类), 如果没有,那么它就把日志信息输出到控...

2020-06-29 12:47:17 44 0

原创 调用百度统计 API

百度统计为用户提供了 API 接入的方式,使得用户可以自定义 UI 而无须进入百度统计网站。百度统计存在两种账号体系:百度商业账号和百度账号,前者就是统计早期的用户账号,本文基于百度商业账号,说明如何接入统计 API。

2020-06-27 01:04:40 136 0

原创 JSP 导出 Excel 格式备忘

兼容 Excel 和 Libre Office Calc 的单元格“文本”设置 <td style="mso-number-format:'/@';" sdnum="2052;0;@">${item.id}</td>...

2020-06-01 18:12:46 132 0

原创 微博、QQ、微信第三方登录 Java 实现实录

第三方账号登录流程"首先, 每个第三方账号(QQ/微博/微信等)都有产生一个唯一性的 openID, 首次登录是这个 openID, 第二次登录也是这个 openID,每次登录都是这个不会变的,所以,基于这种特性我们可以让这些第三方账号首次登录时, 进行的是(注册–自动登录)这两...

2020-05-31 11:32:28 294 0

原创 简简单单做一个带过期时间的内存缓存
原力计划

做手机验证码的时候,一般都有五分钟或十分钟的限时机制,所以就需要把“号码–验证码”的信息暂存起来,过期便无效——类似于 Redis 自带过期的机制就适合了。不过应用 Redis 此类缓存模块要专门搭建环境和配置——比较繁琐,于是想到用 JVM 的缓存来做。关键地,我参考了该资源: https:/...

2020-05-25 00:49:55 302 0

原创 Java 压缩/混淆 JavaScript 代码

基本上都是自己写的工具构建前端工程,压缩/混淆 JavaScript 代码的工具必不可少。我们是 Java 平台的,就是说用 Java 去压缩 JS,这样比较方便。虽然咱们可以外部调用 node 等专门的前端构建工具,但那样不省事,能在 Java 圈子里面搞定就行,我们不搞太复杂的。好~闲话不多说...

2020-05-10 19:35:19 218 0

原创 Istio 可以代替 Spring Cloud 吗?

背景 过去,我们运维着“能做一切”的大型单体应用程序。 这是一种将产品推向市场的很好的方式,因为刚开始我们也只需要让我们的第一个应用上线。而且我们总是可以回头再来改进它的。部署一个大应用总是比构建和部署多个小块要容易。 集中式: 分布式: 集群 分布式和集中式会配合使用。 我们在搭建网站的时...

2020-04-06 15:32:47 1418 0

原创 一台 VPS 主机运行多个网站,多个 HTTPS 域名(基于 nodejs)

四年前写过一篇《用 nodejs 做反向代理服务器》,那时基于 HTTP 的,时过境迁,HTTPS 已是主流。怎么把 HTTP 升级到 SSL 呢?这里为大家稍作介绍一下,作法稍有不同。 支持 SSL 首先 nodejs 支持 HTTPS 很简单,只需要把 require(‘http’) ...

2020-03-28 23:39:08 2076 2

原创 Java 中国大陆身份证处理

开发过程中有涉及身份证的业务,首先是对身份证号码合法性的校验。我们先看看一个简单的版本,出处是 https://blog.csdn.net/ZWLJavaWeb/article/details/55047332。 简单检测 /** * 快速检测 * * @author https:/...

2020-03-27 14:55:38 404 6

原创 巧用 ServletOutputStream 制作代码生成器

代码生成器(CodeGenerators)能够极大地提高工作效率。我们知道,模板技术推崇一种模式:输出=模板+数据。代码生成器的原理也可以同样如是,这里不妨借鉴 JSP 生成的思路,页面 HTML 换成 Java 语句,成为固定不变的内容,即是“模板”;数据就是动态获取的内容,即实体信息和数据库的...

2020-03-25 00:21:26 346 1

原创 常见网络安全攻击分析

本文所述的常规性防御问题包括 XSS 攻击、 SQL 注入、CSRF 攻击、CRLF 注入,下面就逐一来分析这四种问题。 跨站脚本攻击 XSS 跨站脚本攻击(Cross Site Script,XSS,单词 Cross 可作“X”)是 Web 常见攻击的类型。同一域下面资源可以自由相互访问;不同域...

2020-03-23 21:09:28 560 0

原创 Vue Tab 组件再探究

初学 Vue 的时候,发现用 Vue 来写 Tab 组件是如此简单,利用“数据驱动”的思路还真和 js 控制 dom 不一样。请见下面第一版的代码,没有 js dom 那样 for 遍历各元素控制显示或隐藏,而是用 {‘selected’: index === selected} 控制样式,非常简...

2020-03-22 23:00:46 909 0

原创 Java 处理 JSON 标准规范

某日我瞎逛 Github,咦~发现 JSON 处理也有 javax, import javax.json.Json; import javax.json.JsonArrayBuilder; import javax.json.JsonNumber; import javax.json.JsonOb...

2020-03-05 15:45:17 187 0

原创 用 WebSocket + Java 原生功能实现 Web 实时日志(兼容Win平台)

Tomcat产生的日志以文件形式保存在服务器上。如果要在 Web 上浏览这些日志,采用 WebSocket + tail 命令是简单可行的方式,例如这文章介绍得都很好。只是在 Win 系统上面就没有类似 tail 命令行的工具,除非找第三方或者 PowerShell 的,多少有点不便,——尽管多数...

2020-02-20 16:15:36 366 0

原创 Java8 Zip 压缩与解压缩

网上找过几个例子都有点小问题,还是谷歌找出来的靠谱。主要是增加了指定文件的功能,通过 Java8 的 Lambda 判断是否加入 ZIP 压缩,比较方便。函数表达式的签名是 Function<File, Boolean>,参数是待加入的 File 对象,返回值 true 表示允许,反之...

2020-02-16 23:22:57 1143 0

原创 免 mysqldump 命令备份 MySQL 数据库

使用官方提供的 mysqldump 命令可以轻松地备份SQL,但是通常应用服务器和数据库服务器不是放在一块的儿,是否可以通过纯 Java 或 JDBC 来实现备份呢?答案是可以的,笔者根据此思路进行了与 AJAJX-Data 的整合,代码行数更精简,只有 200 多行代码。 但是,必须指出,这种思...

2020-02-10 17:01:19 366 0

原创 H5 动画大师 TweenMax.js/GSAP

手写过 CSS3 做 H5 动画,那过程很累,很低级。于是这次改用 TweenMax 库,感觉非常不错,原来它是做动画的老行尊,失敬失敬,早在 Adobe Flash 时代,这款就是知名的类库,知道现在还可以在其 GitHub 上找到它的 ActionScript 2/3 的开源代码,怪不得现在转...

2019-12-06 17:42:27 309 0

原创 GoldenDict:一款免费的词典工具

开源软件 GoldenDict 是一款“词典”管理软件。为什么称之为“词典”管理软件呢?因为准确地说,GoldenDict 它本身并没有提供任何的“词典”,而是仅提供词典所需的各方面功能,好比一些词典常见的功能也包含在内,即普通查询单词和屏幕截取单词、单词发音三大功能。GoldenDict 的界面...

2019-10-29 15:26:48 13961 1

翻译 9月Libra开发人员更新-路线图#1

9月Libra开发人员更新-路线图#1 September Libra Developer Update - Roadmap #1 October 02, 2019 Libra Association 自六月份正式发布 Libra 项目以来,来自开发人员社区的反响一直非常令人激动。开发者已发...

2019-10-09 12:15:59 188 0

翻译 Libra 开发者采风

Libra Developer Spotlight September 12, 2019 Michael Engle, Libra Association 我们很高兴看到全球各地有如此众多的开发者率先在 Libra 测试网上进行创新的工作。这里就把那些有亮点的例子分享出来! We’re s...

2019-10-07 09:39:57 257 0

翻译 发布 Libra Bug 悬赏项目

原文 https://developers.libra.org/blog/2019/08/14/libra-bug-bounty 2019-8-14 在构建 Libra 区块链的过程中,安全问题一直是重中之重。假设人们在 Libra 上每一天都不间断运行着金融活动,可想而知最关键的是其背后的基础...

2019-10-06 14:38:33 186 2

原创 学习用 JS/CSS 画一个时钟

看到某君的时钟 Clock 代码 https://www.cnblogs.com/xingzhi/archive/2011/04/16/2017645.html,想学习怎么画一个时钟,逐重构之,也里面不合理的地方改进(例如用 js 写 css)。 全部代码如下: <html> &...

2019-08-05 21:42:44 520 0

原创 Facebook Libra 性能初探

译自:官方文档翻译 https://developers.libra.org/docs/crates/consensus。 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。 Libra 中文网同步翻译 http://www.libra-cn.top/docu...

2019-07-22 13:09:42 437 0

翻译 Facebook Libra 共识协议 Consensus 简介

译自:官方文档翻译 https://developers.libra.org/docs/crates/consensus。本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。 概述 共识协议通过多个验证器来创建逻辑模型,这个模型实质是个数据库。共识协议下被提交...

2019-07-17 10:51:39 582 0

翻译 官方文档翻译《The Libra Blockchain》之执行交易(二)

译自:官方文档翻译《The Libra Blockchain》之执行交易,第三小节。本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。 执行交易 执行一次交易在 VM 内部按照六个步骤有序进行。执行交易与更新账本的两个动作是分开的。先尝试在一部分的序列上执行看交...

2019-07-16 10:50:03 204 0

翻译 官方文档翻译《The Libra Blockchain》之执行交易(一)

Libra 协议中,修改区块链状态的唯一方法是执行交易。本节将介绍执行一个交易所必须的条件,定义了交易的结构如何,解释了 Move 虚拟机如何执行一次交易的,还介绍了 Move 语言的关键概念。

2019-07-13 10:34:24 280 0

原创 SEO 小白攻略

填写网页信息 title、keywords、description 等 提交网址入口 百度搜索资源平台,https://ziyuan.baidu.com/linksubmit/index,选择【提交非验证站点链接】https://ziyuan.baidu.com/linksubmit/url 3...

2019-07-10 10:27:06 287 0

翻译 Facebook Libra 内存池组件(Mempool)简介

内存池 Mempool 是位于内存的缓冲区,那些等待执行的交易便保存于此。 概述 准入控制(AC)模块将交易发送到内存池。在共识提交之前,内存池将交易保留一段时间。添加新交易时,内存池会与系统中的其他验证器(验证程序节点)共享此交易。内存池是“共享的”,因为各个内存池之间的交易都与其他验证器共...

2019-07-04 11:36:50 285 0

翻译 Facebook Libra 执行组件(Execution)简介

概述 Libra 区块链是一个复制的状态机。每个验证器都是一个系统的副本。从状态 S0 开始,每笔交易 Ti 更新前一个状态 Si-1 到 Si。每一个 Si 实际是一个 map,映射了账户(以 32 字节地址表示)和该账户所关联的数据。 执行组件输入的交易是有序的交易,通过 Move 虚拟机计算...

2019-07-03 23:31:08 190 0

翻译 Move: A Language With Programmable Resources:区块链如何管理数字资产

区块链如何管理数字资产 区块链之抽象 区块链是一个复制的状态机。系统中的复制器称为验证器。系统用户将交易事务发送给验证器。每个验证器都了解如何执行交易,内部状态机就会把当前状态转换为新的状态。 交易详情都是共享的,验证器根据共识协议(Consensus protocol)来执行交易,这些验证...

2019-07-02 15:24:52 308 0

原创 Calibra:一种新型的全球货币数字钱包

Calibra 是一家新成立的 Facebook 子公司,其目标是提供金融服务,使人们能够参与访问 Libra 网络。 第一款 Calibra 推出的产品是 Li​​bra 数字钱包,Libra 是一种由区块链技术驱动的新型全球货币。Messenger、WhatsApp 或其他独立应用程序会整合电...

2019-07-01 19:35:00 957 0

翻译 Facebook Libra 网络模块简介

网络 网络组件提供了点对点与其他验证器组件之间的通讯原语。 概述 网络组件专门用于促进共识和共享的mempool协议。目前,它为这些消费者提供了两个主要接口: RPC,用于远程过程调用 DirectSend,用于向单个接收器发送即发消息的消息。 网络组件使用: 用于对等寻...

2019-07-01 15:20:09 460 0

翻译 Facebook Move 语言设计目标

Libra 的使命是建立一个简单的全球货币和金融基础设施,赋惠于数十亿人。Move 语言旨在提供安全,可编程的基础。Move 本身必须能够体现 Libra 货币是在一个精确的,可理解的及可验证的规则下治理。从长远来看,Move 必须能 为不同类型的资产及其业务逻辑提供一个完善的财务基础设施。 ...

2019-07-01 11:51:17 227 0

翻译 Facebook Libra 存储(Storage)简介

存储 存储模块为 Libra Blockchain 上的整个数据集提供可靠且高效的持久化存储,以及 Libra Core 内部所使用的必要数据。 概观 存储模块旨在实现两个主要目的: 保留区块链数据,特别是验证方通过共识协议达成一致的交易及输出。 为区块链数据的查询提供 Merkle...

2019-06-30 19:35:12 580 0

翻译 Facebook Libra 准入控制(AC)简介

准入控制 Admission Control 准入控制(AC)是 Libra 的公共 API,它响应来自客户端的公共 gRPC 请求。 概述 准入控制响应客户端的两种请求: SubmitTransaction - 将交易提交给关联的验证器。 UpdateToLatestLedger...

2019-06-30 13:27:54 286 0

翻译 Facebook Libra 加密简介

加密 Crypto 我们在 Libra 中用到的所有加密原语,都实现在 Crypto 加密组件中,它包含:散列(Hashing),签名和密钥派生/生成。 在即将到来的版本中将包含的加密原语(位于 NextGen 目录)有:新的加密 API 来保证类型安全、可验证的随机函数、BLS 签名。 概述...

2019-06-29 17:48:34 396 0

翻译 Facebook Move 语言 IR 编译器简介

Move IR 编译器 概述 Move IR 编译器将 Move IR 编译为字节码。 Move IR 编译器将在 Move 中编写的模块和脚本编译为各自的字节码。输出的两种数据类型分别是 CompiledModule 和 CompiledScript。这些数据类型在 file_format.rs...

2019-06-28 13:14:33 442 0

翻译 Facebook Move 语言虚拟机 VM 简介

虚拟机 VM Move VM 执行以 Move 字节码表示的交易。它有两个核心包:核心 VM 和 VM 运行时。VM 核心包含 VM 的低级数据类型——主要是文件格式及其抽象。此处还定义了燃气计量(Gas metering???)逻辑抽象。 概观 MoveVM 是具有静态类型系统的堆栈机。 ...

2019-06-28 13:04:09 230 0

原创 为什么 Facebook 的 Move 语言叫 Move?

Facebook 提出 Move,一种安全灵活的 Libra 区块链编程语言。Move 是一种可执行的字节码语言,用于实现自定义交易和智能合约。 Move 的关键特性是能够定义具有受线性逻辑启发的语义的自定义资源类型: 资源永远不会被复制或隐式丢弃,只能在程序存储位置之间移动(Move)...

2019-06-27 13:05:20 245 0

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