Skip to content

Instantly share code, notes, and snippets.

@lzghzr
lzghzr / openstd.samr.gov.cn(原gb688)PDF文件载入流程.md
Last active September 7, 2023 07:03
openstd.samr.gov.cn(原gb688)PDF文件载入流程

0. 免责声明

没啥卵用, 但依然要说明一下, 本文未包含版权内容, 且未对所诉网站之程序进行破坏, 文章内容均为学习交流之用

1. 前言

2021年前, gb688 手机版使用的明文 pdf, 可直接下载, 不需要额外处理
2021年开始, 新站 openstd, 开始全面启用 pdf.js, 至此, 手机版也使用与 pc 同样加密技术
2022年4月, 网站弃用 pdf.js, 全面使用图片拼接模式, 本文内容已过时

2. 文件预览

openstd文件以两种方式开放给用户, 一种为直接下载, 另一种为在线预览

@lzghzr
lzghzr / azure_template.json
Created August 6, 2018 10:14
Azure模板
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"adminUsername": {
"type": "string"
},
"adminPublicKey": {
"type": "string"
},
@lzghzr
lzghzr / ASFCryptoPW.html
Last active June 9, 2018 15:57
ASF密码加密算法NodeJS实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>ASFCryptoPW</title>
<script src="https://cdn.bootcss.com/crypto-js/3.1.9/crypto-js.min.js"></script>
</head>
<body>
const userName = data['info'][2][1]
const msg = data['info'][1]
// 为了正确判断长度需要使用正则u模式
const uN = userName.match(/./gu)
// 正常来说应该使用如下代码判断宽字体
// const uW = userName.match(/\p{East_Asian_Width=Wide}/gu)
// 但是由于JavaScript目前不支持此方法, 所以用以下代码代替, 并不完美
const uW = userName.match(/[^\u{0}-\u{2e7f}\u{ff61}-\u{1ffff}]/gu)
// 再次加宽字体长度可以使其变为两倍