How to decrypt data from the result of an IE 11 encrypt operation using AES-GCM

https://stackoverflow.com/questions/41449185/how-to-decrypt-data-from-the-result-of-an-ie-11-encrypt-operation-using-aes-gcm

重要的是第一个回复!

<!DOCTYPE html>
<html>
<body>
<script>
	let plainText = new Uint8Array([1]);
	let key;
	
	let secretDic = {
        a: [88, 88, 88, 88, 88, 88, 88, 88,
        88, 88, 88, 88, 88, 88, 88, 88,
        88, 88, 88, 88, 88, 88, 88, 88,
        88, 88, 88, 88, 88, 88, 88, 88]
    };
	
	let keyBuf = new Uint8Array(secretDic.a);
	let iv = window.msCrypto.getRandomValues(new Uint8Array(12));
	let encResult;
	let importOp = window.msCrypto.subtle.importKey('raw', 
		keyBuf,
		{ name: 'AES-GCM' }, 
		true, // false
		['encrypt', 'decrypt']);
		
	importOp.oncomplete = function(e) {
		key = e.target.result;
		console.log('key: ');
		console.log(key);
		
		let encryptOp = window.msCrypto.subtle.encrypt({
			name: 'AES-GCM',
			iv: iv,
			tagLength: 128
		}, key, plainText);
		encryptOp.oncomplete = function (e) {
			encResult = e.target.result;
			console.log('encResult');
			console.log(encResult);
			
			let decryptOp = window.msCrypto.subtle.decrypt({
				name: 'AES-GCM',
				iv: iv,
				tag: new Uint8Array(encResult.tag)
			}, key, new Uint8Array(encResult.ciphertext));
			decryptOp.onerror = function(er){
				console.log('err:');
				console.log(er);
			};
			
			console.log('decrypt');
			console.log(decryptOp);
		};
	};
	
</script>
</body>
</html>

Let’s Encrypt免费SSL证书

获取Let’s Encrypt免费SSL证书

git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt

sudo ./letsencrypt-auto certonly –standalone –email admin@ccc.com -d aaa.bbb.ccc.com

失败


Skipping bootstrap because certbot-auto is deprecated on this system.
Your system is not supported by certbot-auto anymore.
Certbot cannot be installed.
Please visit https://certbot.eff.org/ to check for other alternatives.

原因需要安装 snap


sudo apt update
sudo apt install snapd -y

sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo apt install certbot -y
sudo apt-get install python-certbot-nginx
sudo certbot --nginx

生成证书:


certbot --nginx --email admin@ccc.com -d  www.ccc.com
certbot --nginx --register-unsafely-without-email ddd.ccc.com

 

 

https://www.cnblogs.com/sage-blog/p/10302934.html
https://zhuanlan.zhihu.com/p/53407930?from_voters_page=true
https://blog.51cto.com/lifeng/2564211
https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx

 

advanced html5 fetch

https://streams.spec.whatwg.org/#blqs-class
https://jakearchibald.com/2016/streams-ftw/

 

 

fetch('/images/1.png').then((response) => {
  var totalBytes = response.headers.get('Content-Length'), bytesReceived = 0;
  var reader = response.body.getReader();
  var stream = new ReadableStream({
    start(controller) {
      function push() {
        reader.read().then(({ done, value }) => {
          if (done) {
            controller.close();
            return;
          }
    bytesReceived += value.length;
	var percent = Math.round(10000.0*bytesReceived / totalBytes) / 100.0;
    console.log(`Received ${bytesReceived} bytes of data so far, ${percent}%`);
          controller.enqueue(value);
          setTimeout(push,0);
        });
      };

      setTimeout(push,0);
    }
  });
  stream.tt = totalBytes;
  return new Response(stream, { headers: { "Content-Type": "image/png" } });
}).then(function(res){
  return res.arrayBuffer();
}).then(function(abuffer){
  console.log(['ok, result buffer is:',abuffer]);
}, function(a,b){console.log([a,b])});

 

2020.12.22 余杭1.73-2.28

汀洲花苑北
东湖中路175号
华兴公寓
伊世纪城市花园一区
曙光嘉园
紫兰花苑
原舍花苑
环岛公寓
五彩商城
万陈花苑
藕花苑
禹航商城
月光苑
耀达仁和印象
金世纪红枫苑
将军殿弄
广厦天都城天泉苑
环桥花苑
水岸锦城
苑中园
梅堰小区
太平家园
华兴公寓
清水弄
爱民路
南苑一区
凤溪路211号
环岛公寓
星育佳园
栖水珑庭
朝阳新苑
木桥浜路23-295号
禹航路
梦溪东明山居
百姓弄小区
汤家锦绣公寓三区
四维公寓
陆家桥新苑
华宇家园
东厦东港花苑
东海水漾人家
碧佳公寓 1.81w
紫兰花苑
邱山公寓
树兰书香名邸
嘉利花园
野风启城
新大地
祥盛家园
陆家桥新苑
世纪嘉园
汇观山花苑 1.85w
云和雅园
贝利栖溪望府
宝林西路 1.88w
凤仪家园
经建绅世郡园
良渚花苑新村
北秀蓝湾花苑 1.89w
邱山公寓
合丰花苑
江南新港公寓
东田擎天半岛 1.91w
清沁花苑
玉都佳苑
佳维新苑
东安景苑
新月花园
美人堂弄
羊山公寓 1.93w
新西湖小镇
府景公寓
西园·凤兴花园
金箭公寓
城西路59号
汤家锦绣公寓二期
黄鹤山居
华盛星洲翠谷
华艺星座
华城格之林花园
南安
百汇中心
临城花苑
五月花城
清合嘉园西区
临城花苑
华盛星洲翠谷
良熟新苑
万陈花苑
科嘉苑
百姓弄小区
荷裕庭
锦昌年华 1.99w
顺达花苑西区
屏惠家园
原舍花苑
东海花园
顺达花苑西区
中尚橄榄树花园(北区)
金石华城
绿城蓝庭西区
龙王塘路90号 1.998w
汤家锦绣公寓二期
耀达金鼎华庭
陆家桥新苑
金盛花苑
经建绅世郡园
东冠逸家
凯文和平雅苑
兴隆小区
南渠社区南渠街
美好桂花金座
荀山花苑
星雅嘉园逸品苑
凤仪家园
五月花城
北秀蓝湾花苑
良渚花苑新村
通济路1-12号
新月花园
黄鹤山居
东湖中路92号
中铁九逸
绿城蓝庭西区
通和十二橡树
瑞金华庭嘉苑
爵士风情花园
方家山公寓
良渚十六街区
江南新港公寓
天富花苑
九龙仓君廷 塘栖 2.038w
悦泽公寓
岸上蓝山
御景城
美好桂花金座
金都夏宫
水汀人家
中梁百悦城 2.0497w
仁惠家园
文园公寓
宝林西路
赞成檀府
都市知音
文明小区
荆山翠谷
莲花公寓
铁流公寓
方汇花苑
星都家园 2.15w
百合苑
绿野春天家园
东田玉城
华城格之林花园
仁惠家园
嘉和银领时代
星雅嘉园逸景苑
爵士风情花园
复地连城国际 2.179w
东冠逸家
福田花园
中园花苑
宝林西路
藕花苑
沁源公寓 2.199w
竹海水韵
瑞金华庭嘉苑
金沙公寓
闲林山水木兰苑 2.2w
绿城紫桂公寓
闲林山水海棠苑
耀达金鼎华庭
兰惠家园
金箭公寓
星桥桂花城 2.22w
华枫名苑
红联九漾华庭▪东区
紫祥公寓
中园花苑
凤城花苑
路劲远洋江南院子 崇贤 2.25w
野风珑园
信达柳郡

2020.12.22 余杭<1.73w

青城嘉园
东田翠谷苑 1.25
东石塘
琴湖碧园
桃园公寓
塘南茗苑
西小河小区
康庭和苑
东兴路181号 1.4
良渚十六街区
径乐家园
水乡人家
佳丽苑
清合嘉园西区
兴泰花苑
华惠家园
天都花园
广宇公寓
兴泰花苑
塘栖一小区
水车河弄
前横弄8号
运动新村
大桥南路8号 pin窑大桥 1.5w
龙湖香醍溪岸
学农弄
清合嘉园西区
广济公寓
汇观山花苑
新苑小区
窑山花园 1.54w
塘南茗苑
东湖公寓
华盛达堂巢
方家弄
星火小区 临平老城 1.56w
赵家弄(余杭)
汤家锦绣公寓三区
景丽华庭
金世纪运河丽园
顺昌花园
湖潭路
后横弄
藕花洲大街西段623号 1.59w
肖家弄
水乡人家
众孚水榭花都
九曲营路
新窑路
锦绣名邸
万陈花苑
临城花苑
南大街 1.62w
新窑路374号
水岸锦城
顺达花苑西区
广和美地兰庭
北湖绿洲花园
杭钢紫元旭润和府
力达易居时代
紫欣华庭
中山路12-4号
杉杉恒和依山郡
城佳公寓 1.64w
兴泰花苑
运河玲珑香榭
大都尚澜
肖家弄
顺达花苑东区
景丽华庭
嘉丰万悦城
星海云庭
康宁和府
力达易居时代
东晖龙悦湾
新曙光公寓
卫生院宿舍楼 1.69
北湖绿洲花园
中都广场
美人堂弄
东方俊园 1.7w
东湖公寓
阳光100嘉园
众安理想湾
湖潭路
树兰书香名邸
环桥花苑二期
良博路65号 1.72w
桐鹤名苑一区
北湖绿洲花园
荷裕庭
北庙北弄
史家埭路小区
爱民路
九曲营小区
东晖龙悦湾
星海云庭 崇贤政府 1.73
复泰雅宸华庭

vs code 高亮配置tokenColors

tokenColors结构:
"tokenColors": [
	{
		"name": "Comment",
		"scope": [
			"comment",
			"keyword.control",
			"keyword.operator",
			...
		],
		"setting": {
			"color": "#000000"
		}
	}
]

scope:

vscode官网使用TextMate语法作为主要的标记引擎,vscode官网没有太详细的说明,我在sublime文档中找到了比较详细直白的说明:https://www.sublimetext.com/docs/3/scope_naming.html,sublime也是支持TextMate语言语法的,TextMate文档:https://macromates.com/manual/en/language_grammars#naming_conventions,文档中说明了TextMate语法的命名约定,配置项多且复杂,系统的使用方法还在研究中,这里列出一些目前我开发中用到的作用域表示含义

comment
  • comment.line:一行注释
    • double-slash://
    • double-dash:--
    • number-sign:#
    • percentage:%
  • comment.block:多行注释:/*...*/<!--...-->
    • documentation:嵌入式文档
constant:各种形式的常数
  • constant.numeric:数字
  • constant.character.escape:转义字符如\n\x20
  • constant.language:true/false/null
  • constant.language.null:null
  • constant.language.boolean.true:true
  • constant.language.boolean.false:false
  • constant.other.placeholder:格式化占位符
  • constant.other:其他常量,如css中的颜色
entity
  • entity.name.namespace:命名空间,包和模块
  • entity.name.constant:常数
  • entity.name.label:类似goto的构造的标签
  • entity.name.class.ford-decl:在C和c++中使用
  • entity.other.inherited-class:列为继承的类或已实现的接口/特征的类
  • entity.name
    • entity.name.function:函数名称
    • entity.name.type:注释中的{boolean}
    • entity.name.tag:标签名颜色
    • entity.name.section:标记语言(如markdown)的标题名称
  • entity.other
    • entity.other.inherited-class:超类/基类名称
    • entity.other.attribute-name:标签的属性名称id/class
    • entity.other.attribute-name.id.css:如#box
    • entity.other.attribute-name.class.css:如.box
invalid:无效的
  • invalid.illegal:非法使用
  • invalid.deprecated:使用已启用的API函数或使用具有严格HTML的样式
keyword

控制关键字(if、try、end、while)

  • keyword.control
  • keyword.control.conditional
  • keyword.control.import

运算符通常都是符号,根据运算符的类型引用特定的变体

  • keyword.operator
  • keyword.operator.assignment
  • keyword.operator.arithmetic
  • keyword.operator.bitwise
  • keyword.operator.logical:=

包含标点符号的关键字(@)

  • punctuation.definition.keyword

操作者是一个字(and or not)

  • keyword.operator.word

所有其余的非运营商关键字都属于other

  • keyword.other:css单位px
  • keyword.other.unit.px.css
  • keyword.other.unit.fr.css
  • keyword.other.unit.s.css
  • keyword.other.unit.percentage.css
markup

标记作用域用于内容,而不是代码(包括Markdown和Textile等语法)

  • markup.underline:带下划线
    • link:带下划线的链接
  • markup.bold:粗体
  • markup.heading:标题
  • marker.italic:斜体
  • marker.list:列表
    • numbered:编号
    • unnumbered:未编号
  • marker.quote:引号
  • marker.raw:逐字记录的文本
    • markup.raw.inline
    • markup.raw.block
  • marker.other:其他
  • markup.inserted:插入
  • markup.deleted:删除
  • markup.fenced_code.block.markdown:代码块
meta

元作用域用于范围更大的代码或标记部分,通常包含多个更具体的范围
数据结构的完整内容

  • meta.function-call:函数名称(包括完整路径)和所有参数
  • meta.block:用{}描述的代码段使用以下范围,在{}内的字符使用另外的punctuation范围
  • punctuation.section.block.begin
  • punctuation.section.block.end
  • meta.braces:() 和 []
  • meta.brace.square.js:[]
  • meta.tag:HTML和xml标签
  • meta.path:完整的标识符
  • meta.paragraph:标记语言的段落
  • meta.object-literal.key.js:对象里的属性名
  • meta.structure.dictionary.json:json文件的{}的高亮
punctuation.
  • punctuation.separator:,:
  • punctuation.terminator:;和其他语句终止符
  • punctuation.separator.continuation:行继续字符
  • punctuation.accessor:.
  • punctuation.section:css类的{}
  • punctuation.definition.template-expression:插值表达式$
  • punctuation.definition.binding-pattern:对象展开运算符
  • punctuation.definition.parameters:函数的()
  • punctuation.definition.block:@ {}
  • punctuation.definition.tag:同meta.tag,权重更高,.vue中meta.tag不会改变template标签颜色,punctuation能改变
  • punctuation.definition.list:markdown中列表的序号
  • punctuation.definition.dictionary:json文件的{},权重更高
  • punctuation.definition.array:json文件的[],权重更高
  • punctuation.support:json文件属性名的""
source

应用于整个源代码文件

  • source
storage
  • storage.type:constfunction=>的颜色
  • storage.type.function:function=>的颜色
  • storage.modifier:影响变量,函数或数据结构的存储的关键字如const
string
  • string.quoted:带引号的字符串
    • single:''
    • double:""
    • triple:三引号
    • other:其他
  • unquoted:未加引号
  • interpolated:被评估的字符串:$()
  • regexp:正则表达式
  • other:其他
  • punctuation.definition.string:字符串引号颜色

字符串的整体以及所有的标点,前缀,后缀和插值:

  • meta.string
    插值表达式的标点
  • punctuation.section.interpolation.begin
  • punctuation.section.interpolation.end
  • source.language-suffix.embedded:在标点之间的插值表达式
support.
  • support.function:如log
  • support.class:如console
  • support.type:module.export
  • support.constant:css参数
  • support.variable:框架提供的变量
  • support.other:其他内容
  • support.type.property-name:css属性颜色
text
  • text.html:html
  • text.xml:xml
  • text.html.markdown:markdown文本颜色
variable
  • variable.other:声明的变量
  • variable.language:thissuper
  • variable.parameter:函数参数
  • variable.other.constant:const声明的不可变变量的颜色
  • variable.other.readwrite:letvar声明的变量的颜色
  • variable.other.member:类或其他数据结构的字段,属性,成员
  • variable.other.object:document
  • variable.other.object.property:调用对象属性方法
  • variable.function:函数和方法名称的作用域,但仅限于调用时
  • punctuation.definition.variable:作为变量名称一部分的符号如$
  • variable.annotation:作为数值一部分的标识符中的最终标签
  • punctuation.definition.annotation:用于描述注释的前导符号

好文存档《上海户口撑不住了》

  一)户籍大战

字数越少,事情越大。

9月23日,上海市政府发布《2020年非上海生源应届普通高校毕业生进沪就业申请本市户籍评分办法》

  

 

这意味着,中国倒数第二个户籍堡垒,终于崩塌了。

 

众所周知,《水库论坛》是一个讲房子的社群。

“户籍”作为买房的限购资格,也有其“科技树”。

1960年代时,“户籍”的含金量非常高。城市户口,相比于农村户口,那就是吃皇粮的。

如果你有幸生活在北京、上海、更是倾全国之力,物资优先供应。哪怕困难时期,也不会饿殍。

1980年代改革开放,“农民工”进城。

但是“进城不进人”。农民工贡献完青春,享受不到大城市的医保社保,被一脚踢回乡村。

在当年,引发了大量的争议。

多么象今天的深圳外卖员,城市榨汁机

2017年10月, 户籍制度开始崩塌。以“西安大抢人”为序幕,各个省会城市如梦初醒。

“人口才是第一生产力”。在经济放缓,GDP疲软的今天,只有更多的青年人口,才是火苗。

谁抢到了大学生,谁就有GDP政绩。

 

最近有个关于抢人大战的段子很火。
一小伙去西安走亲戚,在火车站被警察拦住,警察问:“你是西安人吗?”
小伙:“不是,我来走亲戚的。”
警察:“带回派出所,符合亲友投靠落户条件。”

另一小伙在西安街上闲逛,又碰到了警察,警察问:“你是西安人吗?”
“好了别闹了,我是本地的。”
警察:“带回派出所,让外地的大学同学来派出所接你,然后同学落户。”

 

  —-

  据说,作为第一个吃螃蟹者,西安抢到了35w本科人口。

这直接导致了西安楼市,2017年波澜壮阔“翻倍”行情。

只要是年轻人,他就有消费。

年轻人还会上班,有纳税。

35w年轻人落户,抵往年十倍。

爆发房价牛市大行情,卖地财政赚到盆满钵满,笑不动了。

继西安之后,郑州,武汉,南京,杭州,一系列“强二线”省会城市,纷纷放开了落户限制。各地的门槛之低,归根到底一句话:

强二线:本科就行

弱二线:是人就行

尤其是2018.5月天津《海河计划》#1810,更是引发了户籍市场的地震。

天津作为直辖市,第一个揭下了高贵贵妇的裙角。这意味着:

 

享受直辖市特权,高考极大降分录取。

 

截止到2020年9月,中国真正还有“户籍”说法,进入门槛的,事实上只剩下北京、上海、二座城市。

怀揣着本科文凭,中国大地上,随意迁徙,四处游走。

二)户口的价值

很多人问,那么HuKou,到底有什么价值呢。

新一代的年轻人不明白,薄薄的户口本,意味有什么“制度特权”。

概括地来说,户口主要有五项好处:买房,买车,教育,医疗,养老。

买房,本市户口限购

买车,本市户口摇号

教育,本市娃娃上学

医疗,享受医保

养老,享受社保

“水库论坛”是专讲投资房地产的。

我们的粉丝,面临一个非常实际的问题,“怎样购买北京、上海的房子”。

北漂七年,但还是一个外乡人。

没有购房资格,没户口子女不能上学,只能租房,难道要回老家么。

与此对应的,有需求就有供应。

就会有“管家公司”服务。你需要户口,我帮你破。

“户籍”也可以破,限购都能破,为什么被思维束缚。

管家公司一条龙服务。

水库精神,钻研天下无事不破。

正常的上海户籍,夫妻随迁,需要十年。

“积分落户”,需要七年。而且中间不能中断,非常苛刻。很容易清零重来。

“破户籍”的事,以前是个禁区。能做不能说。

但在9.23政策之后,大环境变迁,讲出来也无妨。

一切都是合法的。

正常途径拿上海户口,时间极长,苛刻极难。

但上海户籍,有一个“后门”。

上海有一条政策,任何“外省博士”毕业之后。

博士毕业,没有找工作。必须是第一年。

来上海的“博士后”站点,继续深造,钻研学术。

为了招揽这种“高级”深度人才,上海出政策,“博士后配偶,可以随迁一名,入上海籍”。

那么你想,每年6月,博士生毕业之年。

某800度Nerd博士,突然被爱情击中(被金钱击中),找了一个女子结婚。

落户之后,再离婚分手。

这样,配偶就获得了上海户籍。

  —

  这个通道,非常狭窄。

毕竟,每年博士毕业的才几个人,没结婚又剩几个。还要愿意和你配合。一辈子只能用一次。

供求关系决定,这个“彩礼”大约是人民币70w元左右。

若算上中介费用,来回抽头,很容易“上海户籍≈100w”。

 

书中自有黄金屋。这个故事也告诉我们,读“博士”是可以赚钱的,关键看你有没有读傻。

 

男博士,女博士,收费不同。

三)上海放开户籍

言归正传。2020.9.23的政策,是上海放宽“户籍”落户政策。

2018.8月,清华北大直接落户

2020.9月,复旦,交大,同济,华师大直接落户(为什么没有上财)

2020.未来 ?

户籍进一步扩散到所有本科,指日可待

九月份的口子,开得有点大。

复旦+交大+同济+华师,每年毕业10000人

复旦交大70%外地生源,同济华师80%外地生源

 

简单地估算一下,每年+7500人,获得购房资格。
往溯也算的话,+150000

 

政策的分析,分为二个方面。

1)上海撑不住了。

2)上海楼市涨跌

首先,和天津一样,任何一个“特权”的放开,都是老牌贵族,撑不下去的体现。

 

格拉古兄弟改革古罗马帝国,平民和元老院的界限逐渐被打破。
原因也是元老院势力下降,布匿战争之后新贵崛起。

 

天津第一个放开户籍。把珍贵的“高考加分”特权,和外省人分享,而且卖得一点都不贵。关键就是“天津经济”撑不住了。

那么,上海的经济好么。

上海经济好个屁!俺作为上海人,是有权骂一句Nigger(别人骂不得)。

上海目前是“重度老龄化”社会,整个地铁里,全都是白发苍苍老太。

最近十年,上海没有任何行业创新,没有商战动魄传奇。

 

移动互联网,BAT,手机群雄,人工智能,5G,大数据,物联网,光刻机,新一代的明星企业,没一家诞生于上海。

 

曾经,上海的竞争上限是深圳。

现在,上海的下限是天津。我们深深害怕,上海会“天津化”。

天津依然是北方大港,GDP依然很高。

但是没有人记忆它,没有人谈论它。人们甚至忘了,北方还有这么一个超级大城市存在。任何生意,都绕开天津走。

作为中国倒数第二个堡垒,上海放开户籍,并不是革新奋起的号角。

而是经济承压,苟延残喘的续命。

这相当于一剂强心针,打二个基数的血清。

不愿意进行根本性的结构改革,小打小闹,撑二天脸色红润。

 —

  上海是遮遮掩掩的。一方面知道“人才是第一生产力”。未来城市竞争,就是人才的竞争。

另一方面,口子只挪一寸。从“清北”变成“清北,复交,同师”。

和稀泥能避免上海日益被“新经济”边缘化的局面么。

我认为是不能的。

 

落户评分:

如果因为种种原因,“打分”不足72分。
解决的技巧是,社保按照“顶格”3倍交。不出一年,评分肯定飚爆。

 

四)上海楼价

虽然我们痛骂上海经济,但是对于上海楼价,尤其是2021~2022年的短期房价,水库认为是非常有希望的。

西安放开户籍,优先抢人,房价大涨。

深圳在一线城市中,优先上涨。得益于深圳“极宽松”落户政策。

天津海河计划,山东河北妈妈拼命涌入,连夜房价暴涨。直至海河计划被提前关闭。

从技术面讲,从2016.5上海楼市熄火,到2021年,调整周期已长达五年。

从技术面讲,一般深圳涨完,“下一波”衍生圈,是广州、上海

从技术面讲,2020年上海成交量,已高达28000套/月。

一个市场最理想的,是“技术面,政策面,选筹面”三效合一。也就是我们所谓的《三重顶》。

从技术面讲,2020上海楼市,已经积蓄了很强的购买动力。就缺一个“利好”导火索。

2020“有量没有价”,叫好不叫座。

看起来交投旺盛,笋盘纷纷消失,但价格水准线并没有变动。仅仅是“低价盘”没有了。

 

真正属于上海楼市的“牛市年”,或许应该是2021年。

 

未来可以推算,也可以猜测。

2021年上海冀望牛市,还需要“政策面”利好加把劲。

“放开户籍”算一重利好,小小地添火烧了一把。

如果在限购,限贷,税费政策上再有利好,我们对2021上海楼市的预估就更有信心了。

(yevon_ou@163.com,2020年9月23日午)

mingw64上pacman升级密钥失效问题

可能是我的mingw64太老了,升级出了问题。

 

1) 添加国内镜像:

cd /etc/pacman.d
mirrorlist.mingw32:
Server = https://mirrors4.tuna.tsinghua.edu.cn/msys2/mingw/i686/
Server = http://mirrors.zju.edu.cn/msys2/mingw/i686/

mirrorlist.mingw64:
Server = https://mirrors4.tuna.tsinghua.edu.cn/msys2/mingw/x86_64/
Server = http://mirrors.zju.edu.cn/msys2/mingw/x86_64/

mirrorlist.msys:
Server = https://mirrors4.tuna.tsinghua.edu.cn/msys2/msys/$arch/
Server = http://mirrors.zju.edu.cn/msys2/msys/$arch/

2) 秘钥问题

解决msys2“无法升级 mingw64 (无效或已损坏的数据库 (PGP 签名))”密钥失效问题
参考文章:https://www.weixiuzhan.cn/news/show-20820.html

2-1) 下载:
msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig

2-2) 验证签名是否建立完好
# pacman-key –verify msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz{.sig,}

2-3) 安装 msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
# pacman -U –config <(echo) msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz

2-4) pacman -Syu
进行更新

2-5) * 如果还存在签名问题导致无法更新,可以尝试重置pacman key:
# rm -r /etc/pacman.d/gnupg/
# pacman-key –init
# pacman-key –populate msys2
然后再pacman -Syu进行更新