<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>生活杂谈 on 静静的安全笔记</title><link>https://ruajingjing.top/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/</link><description>Recent content in 生活杂谈 on 静静的安全笔记</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Thu, 08 Aug 2024 16:13:45 +0000</lastBuildDate><atom:link href="https://ruajingjing.top/categories/%E7%94%9F%E6%B4%BB%E6%9D%82%E8%B0%88/index.xml" rel="self" type="application/rss+xml"/><item><title>奇怪的杂项</title><link>https://ruajingjing.top/post/0102-%E5%A5%87%E6%80%AA%E7%9A%84%E6%9D%82%E9%A1%B9/</link><pubDate>Thu, 08 Aug 2024 16:13:45 +0000</pubDate><guid>https://ruajingjing.top/post/0102-%E5%A5%87%E6%80%AA%E7%9A%84%E6%9D%82%E9%A1%B9/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post 奇怪的杂项" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;a class="link" href="https://blog.csdn.net/luochen2436/article/details/123376678" target="_blank" rel="noopener"
 &gt;https://blog.csdn.net/luochen2436/article/details/123376678&lt;/a&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="图0" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-08-08-11-00-42.png"&gt;&lt;/p&gt;
&lt;p&gt;一个Python编译文件，运行后什么也没有，先到&lt;a class="link" href="https://tool.lu/pyc/" target="_blank" rel="noopener"
 &gt;反编译网站&lt;/a&gt;反编译看看。得到如下代码。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="ch"&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# visit https://tool.lu/pyc/ for more information&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Version: Python 3.6&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;Base58 encoding
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;Implementations of Base58 and Base58Check endcodings that are compatible
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;with the bitcoin network.
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;hashlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sha256&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 11&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;__version__&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;1.0.3&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 12&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;alphabet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 13&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;bytes&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 14&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 15&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;iseq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;ord&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 16&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 17&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;bseq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 18&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 19&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;buffer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 20&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 21&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 22&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;iseq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 23&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;bseq&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;bytes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 24&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 25&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;buffer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;buffer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 26&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 27&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;scrub_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 28&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 29&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;ascii&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 30&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nb"&gt;isinstance&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;bytes&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 31&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="ne"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;a bytes-like object is required (also str), not &amp;#39;&lt;/span&gt;&lt;span class="si"&gt;%s&lt;/span&gt;&lt;span class="s2"&gt;&amp;#39;&amp;#34;&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="vm"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 32&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 33&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 34&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;b58encode_int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;default_one&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 35&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;Encode an integer using Base58&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 36&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;default_one&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 37&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;alphabet&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 38&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;None&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 39&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 40&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;divmod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 41&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;alphabet&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;idx&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 42&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 43&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 44&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 45&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;b58encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 46&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;Encode a string using Base58&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 47&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrub_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 48&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nPad&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 49&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lstrip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%00&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 50&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nPad&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 51&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 52&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;iseq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;reversed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 53&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;acc&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 54&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 55&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 56&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b58encode_int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;False&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;default_one&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;,))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 57&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;alphabet&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;nPad&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 58&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 59&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 60&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;b58decode_int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 61&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;Decode a Base58 encoded string as an integer&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 62&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rstrip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 63&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrub_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 64&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;decimal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 65&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;char&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 66&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;decimal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;decimal&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;58&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;alphabet&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;index&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;char&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 67&lt;/span&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 68&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;decimal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 69&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 70&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 71&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;b58decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 72&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;Decode a Base58 encoded string&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 73&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rstrip&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 74&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scrub_input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 75&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;origlen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 76&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lstrip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;alphabet&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 77&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;newlen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 78&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;acc&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b58decode_int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 79&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 80&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;acc&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 81&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;divmod&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;acc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;256&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 82&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mod&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 83&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;%00&amp;#39;&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;origlen&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;newlen&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;bseq&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;reversed&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 84&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 85&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 86&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;b58encode_check&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 87&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;Encode a string using Base58 with a 4 character checksum&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 88&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;digest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sha256&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sha256&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 89&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;b58encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 90&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 91&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 92&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;b58decode_check&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 93&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="s1"&gt;&amp;#39;&amp;#39;&amp;#39;Decode and verify the checksum of a Base58 encoded string&amp;#39;&amp;#39;&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 94&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;b58decode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 95&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 96&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;check&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 97&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;digest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;sha256&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sha256&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 98&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;check&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="n"&gt;digest&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 99&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="ne"&gt;ValueError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Invalid checksum&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;100&lt;/span&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;101&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="vm"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;__main__&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;102&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;b58encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sa"&gt;b&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;3sLBBYq91BUxPzp7tRuYNKvUNQ2hedyw6ydjzNbf9rJbYq9Ue6xzr9aL6rEDwUQZRGnZPGGgwM2PspAeVcCCjyrNQqDV5PhvaZpwj5ZMaXaFuGjiXK1gf72U325dx6n1RFKiBF3C9dYRTj86aqxZ5HN53KLaW7oBoXwJjbsNFdci8A2kQM&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;103&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;flag is coming...&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;104&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;105&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;There is no problem that your input is wrong.&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图1" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-08-08-11-05-08.png"&gt;&lt;/p&gt;
&lt;p&gt;解码最后一句话得到：1 base58(radix58)
So you still decompiled me. I&amp;rsquo;m just a Miscellaneous. Forget it. Look at your hard work. Give you a hint. Flag is in the PyC file.
暗示flag.pyc 本身就是flag，不要解码看python代码，是pyc隐写。&lt;/p&gt;
&lt;p&gt;用 &lt;a class="link" href="https://github.com/AngelKitty/stegosaurus" target="_blank" rel="noopener"
 &gt;stegosaurus&lt;/a&gt; 解码隐写文件。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;wget https://mirror.ghproxy.com/https://github.com/AngelKitty/stegosaurus/releases/download/1.0/stegosaurus
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="图2" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2024/2024070809/2024-08-08-14-27-54.png"&gt;&lt;/p&gt;
&lt;p&gt;flag{217a5bcecea1be5eeca5028b06427b84}&lt;/p&gt;</description></item><item><title>自制笔型胶水</title><link>https://ruajingjing.top/post/%E8%87%AA%E5%88%B6%E7%AC%94%E5%9E%8B%E8%83%B6%E6%B0%B4/</link><pubDate>Wed, 12 Apr 2023 23:11:02 +0000</pubDate><guid>https://ruajingjing.top/post/%E8%87%AA%E5%88%B6%E7%AC%94%E5%9E%8B%E8%83%B6%E6%B0%B4/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post 自制笔型胶水" /&gt;&lt;p&gt;我发现现在文具太会赚钱了，我有一天看到一个视频推荐胶水笔，一搜价格16元一只笔，没错，一只。
（日本吴竹笔）&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2022/Snipaste_2023-04-12_16-47-06.png"&gt;&lt;/p&gt;
&lt;p&gt;因为我现在是财务工作，特别费胶水，我感觉16元一只我的话也能很快用完，而且很贵啊！（财务人不能容忍）&lt;/p&gt;
&lt;p&gt;但是，把胶水像笔一样涂开的做法我觉得非常方便，尤其是粘贴财务单据的边边角角的时候，真的非常让人舒心。所以，我就像自己弄一个。废话不多说，直接上配方。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2022/Snipaste_2023-04-12_16-51-47.png"&gt;&lt;/p&gt;
&lt;p&gt;首先要准备：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一大瓶浆糊 10.8元2瓶，每瓶400g&lt;/li&gt;
&lt;li&gt;粉底液分装瓶&lt;/li&gt;
&lt;li&gt;自封袋&lt;/li&gt;
&lt;li&gt;勺子&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;步骤：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;首先用勺子把浆糊舀到自封袋里，用多少装多少。&lt;/li&gt;
&lt;li&gt;然后把自封袋底部剪开一个角，把浆糊像挤奶油一样挤进去分装瓶里。&lt;/li&gt;
&lt;li&gt;拧上分装瓶，挤出浆糊，你就得到一只浆糊笔了。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="不同分装瓶的对比"&gt;不同分装瓶的对比
&lt;/h2&gt;&lt;p&gt;我帮你们找到了一些分装瓶的规格，从不同角度对比。首先是刷头：
鸭嘴头、滚珠头、小舌片头、大舌片头、口红头、毛刷头、植绒头。
体验下来我觉得是毛刷头和舌片头的最适合涂胶水。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2022/Snipaste_2023-04-12_21-27-57.png"&gt;
其次是三个品牌的含量对比。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2022/含量.png"&gt;
净含量最多的是真空底部按动的这款，他家也是刷头样式最多的，也是最容易挤进去浆糊的。&lt;/p&gt;
&lt;h2 id="与一般胶水笔粘力对比"&gt;与一般胶水笔粘力对比
&lt;/h2&gt;&lt;p&gt;为了测评我也是斥巨资买了16元一只的吴竹胶水笔和9.9元6只点点胶水笔。吴竹胶水笔和点点胶水笔都宣传自己20秒速干，有颜色时粘力最强，透明时可以当做不粘胶用。&lt;/p&gt;
&lt;h2 id="使用感受"&gt;使用感受
&lt;/h2&gt;&lt;p&gt;首先是吴竹胶水笔，这个出胶方式是向下戳笔头，要么半天不出来，要么出来就是一坨。即便是盖好笔帽，时间长了笔头会干，然后出胶就不是很顺畅了。&lt;/p&gt;
&lt;p&gt;其次是点点胶水笔，笔壳品控有点差，6只笔有一只就按下去弹不起来。胶水出胶顺畅，整体使用感受好，就是消耗的太快了，别看9.9元6只，我一个星期就能用完一只，这个胶水的笔芯太少了。&lt;/p&gt;
&lt;p&gt;最后是自制浆糊笔，最大的特点就是便宜。出胶顺滑程度主要看用的什么分装瓶，我个人是推荐按动真空的那款。盖好笔帽就浆糊就不会干了堵住笔头。粘贴后如果不压着就会皱，干的时间相对来说稍微慢一点。&lt;/p&gt;
&lt;p&gt;可以看最后这张表的总结。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2022/演示文稿1_01.png"&gt;&lt;/p&gt;
&lt;p&gt;视频最后，回答一个问题，就是为什么不用固体胶？&lt;/p&gt;
&lt;p&gt;我目前的工作主要是财务方面的，做过相关工作的应该有体会，要贴很多发票。固体胶有个最大的问题就是粘不牢。不管说他自己如何宣传强粘力的固体胶，都是粘不牢的。也许当时看上去是粘牢了，过一段时间他又自己掉下来了。我是被固体胶坑过的，就是有张票据没有粘牢，拿起来的时候自己掉了，然后那一整个单据都不能通过，最后是在一个充满灰尘的角落终于找到了那张发票。&lt;/p&gt;
&lt;p&gt;就是从那以后我就不用固体胶，用浆糊，浆糊的粘力比固体胶好，虽然干的慢一点，但是相比液体胶水已经好很多了。&lt;/p&gt;
&lt;p&gt;花絮
怂恿分装瓶老板卖胶水。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://newblogimg.oss-cn-beijing.aliyuncs.com/2022/Snipaste_2023-04-12_22-35-44.png"&gt;
PS 也许固体胶粘不牢还有一个原因，是因为没有用力涂，但是用力涂就很难掌握边角的位置。还有就是如果要每张纸都用力涂，很累的好吧。&lt;/p&gt;</description></item><item><title>我的桌面常用软件分享</title><link>https://ruajingjing.top/post/%E6%88%91%E7%9A%84%E6%A1%8C%E9%9D%A2%E5%B8%B8%E7%94%A8%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/</link><pubDate>Tue, 01 Mar 2022 13:26:49 +0000</pubDate><guid>https://ruajingjing.top/post/%E6%88%91%E7%9A%84%E6%A1%8C%E9%9D%A2%E5%B8%B8%E7%94%A8%E8%BD%AF%E4%BB%B6%E5%88%86%E4%BA%AB/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post 我的桌面常用软件分享" /&gt;&lt;p&gt;分享一下我工作、学习和娱乐中用的软件和工具网站。&lt;/p&gt;
&lt;h2 id="系统软件"&gt;系统软件
&lt;/h2&gt;&lt;h3 id="搜狗输入法"&gt;搜狗输入法
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://pinyin.sogou.com/" target="_blank" rel="noopener"
 &gt;https://pinyin.sogou.com/&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301123002.png"&gt;
输入法随便哪个都差不多，我在手机上更喜欢使用讯飞输入法，下载搜狗的唯一用处就是他是唯一支持《战舰世界》这个游戏聊天框打字的输入法。&lt;/p&gt;
&lt;h3 id="listary"&gt;listary
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.listary.com/" target="_blank" rel="noopener"
 &gt;https://www.listary.com/&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301123519.png"&gt;
双击ctrl呼出搜索框，可以搜索文件和应用，还能快捷打开浏览器。用了就停不下来。支持拼音首字母搜索和自动补全。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301123731.png"&gt;
微软自己出的PowerToys虽然功能强大，也有搜索功能，但是不支持拼音首字母搜错和自动补全，基本是要你自己清除的记得文件名要什么才能搜索出来，对于中文用户来说很不友好。&lt;/p&gt;
&lt;h3 id="coodesker-酷呆桌面"&gt;coodesker 酷呆桌面
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.coodesker.com/" target="_blank" rel="noopener"
 &gt;https://www.coodesker.com/&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301124201.png"&gt;
Fences 的免费平替版本，没有广告，没有捆绑，不会换壁纸，也没有便签，就是一个简单的桌面分类。如果你只想要一个桌面分类软件，这个就很合适。还有桌面不要放置文件夹，在电脑安装之初就要将桌面文件夹的地址从C盘移动到D盘。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301124730.png"&gt;&lt;/p&gt;
&lt;h3 id="picgo"&gt;PicGo
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://molunerfinn.com/PicGo/" target="_blank" rel="noopener"
 &gt;https://molunerfinn.com/PicGo/&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301125503.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301125530.png"&gt;
上传图片到图床自动返回指定格式的图片链接，写markdown，网页的好帮手。&lt;/p&gt;
&lt;h3 id="honeyview"&gt;HoneyView
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.bandisoft.com/honeyview/" target="_blank" rel="noopener"
 &gt;https://www.bandisoft.com/honeyview/&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301130700.png"&gt;
可以快捷的查看图片，打开速度超级快，他家还有Honeycam也值得一用，是动图制作软件，但是收费，10s以上的收费。可以隐藏边框只是用快捷键查看图片。&lt;a class="link" href="https://www.bandisoft.com/honeyview/help/shortcut/" target="_blank" rel="noopener"
 &gt;HoneyView的快捷键&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="snipaste"&gt;Snipaste
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.snipaste.com/" target="_blank" rel="noopener"
 &gt;https://www.snipaste.com/&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301131137.png"&gt;
F1 键截图，截图后还能标注箭头，文字等，然后保存，或者悬停在桌面上。&lt;/p&gt;
&lt;h3 id="ditto"&gt;Ditto
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://ditto-cp.sourceforge.io/" target="_blank" rel="noopener"
 &gt;https://ditto-cp.sourceforge.io/&lt;/a&gt;
剪贴板软件，可以储存多个剪贴板字段，然后搜索回放，
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301131623.png"&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301131646.png"&gt;&lt;/p&gt;
&lt;h3 id="quicker"&gt;Quicker
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://getquicker.net/" target="_blank" rel="noopener"
 &gt;https://getquicker.net/&lt;/a&gt;
工具箱软件，可以自定义一些动作片段，也可以用别人做好的片段，我常用的是OCR和重命名。
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301131724.png"&gt;&lt;/p&gt;
&lt;h3 id="mathpix"&gt;Mathpix
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://mathpix.com/" target="_blank" rel="noopener"
 &gt;https://mathpix.com/&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301132128.png"&gt;
可以识别图片中的公式转化为LaTeX格式，手写的也能识别。简直是理科生福音。&lt;/p&gt;
&lt;h3 id="vlc"&gt;vlc
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.videolan.org/" target="_blank" rel="noopener"
 &gt;https://www.videolan.org/&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301134728.png"&gt;
VLC播放器几乎能播放所有音频视频文件，还支持播放推流文件，打开速度快，无广告。&lt;/p&gt;
&lt;h3 id="格式工厂"&gt;格式工厂
&lt;/h3&gt;&lt;h3 id="7zip"&gt;7zip
&lt;/h3&gt;&lt;h3 id="epub-converter"&gt;EPUB Converter
&lt;/h3&gt;&lt;h3 id="网易邮箱大师"&gt;网易邮箱大师
&lt;/h3&gt;&lt;h3 id="坚果云"&gt;坚果云
&lt;/h3&gt;&lt;h3 id="百度网盘"&gt;百度网盘
&lt;/h3&gt;&lt;h3 id="向日葵"&gt;向日葵
&lt;/h3&gt;&lt;h3 id="火绒"&gt;火绒
&lt;/h3&gt;&lt;h2 id="编程学习和建模"&gt;编程学习和建模
&lt;/h2&gt;&lt;h3 id="mcreator"&gt;MCreator
&lt;/h3&gt;&lt;h3 id="blockbench"&gt;BlockBench
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="http://www.electronjs.org/apps/blockbench" target="_blank" rel="noopener"
 &gt;http://www.electronjs.org/apps/blockbench&lt;/a&gt;
&lt;img loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2021/20220301123317.png"&gt;
用于给MC模型建模用的，可以快速查看贴图和模型，也可以做简单的MC风格的模型。对于MC开发贴合度非常好。&lt;/p&gt;
&lt;h3 id="isilider"&gt;iSilider
&lt;/h3&gt;&lt;h3 id="小恐龙"&gt;小恐龙
&lt;/h3&gt;&lt;h3 id="3dmax"&gt;3Dmax
&lt;/h3&gt;&lt;h3 id="maya"&gt;Maya
&lt;/h3&gt;&lt;h3 id="ps"&gt;PS
&lt;/h3&gt;&lt;h3 id="gimp"&gt;Gimp
&lt;/h3&gt;&lt;h3 id="paint"&gt;paint
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.getpaint.net/" target="_blank" rel="noopener"
 &gt;https://www.getpaint.net/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="mobaxterm"&gt;MobaXterm
&lt;/h3&gt;&lt;h3 id="unity"&gt;Unity
&lt;/h3&gt;&lt;h3 id="marverlous-designer"&gt;Marverlous Designer
&lt;/h3&gt;&lt;h3 id="imagemagick"&gt;imageMagick
&lt;/h3&gt;&lt;h3 id="vscode"&gt;VScode
&lt;/h3&gt;&lt;p&gt;片段输入
Pandoc
Prince
Calibre
git
Qt designer
插件推荐&lt;/p&gt;
&lt;h3 id="global-mapper"&gt;Global Mapper
&lt;/h3&gt;&lt;h3 id="91卫图助手"&gt;91卫图助手
&lt;/h3&gt;&lt;h3 id="wolai"&gt;Wolai
&lt;/h3&gt;&lt;h3 id="firefox"&gt;Firefox
&lt;/h3&gt;&lt;h3 id="chrome"&gt;Chrome
&lt;/h3&gt;&lt;h2 id="视频制作与直播"&gt;视频制作与直播
&lt;/h2&gt;&lt;h3 id="obs"&gt;OBS
&lt;/h3&gt;&lt;h3 id="跨博插件"&gt;跨博插件
&lt;/h3&gt;&lt;h3 id="小葫芦"&gt;小葫芦
&lt;/h3&gt;&lt;h3 id="开黑啦"&gt;开黑啦
&lt;/h3&gt;&lt;h3 id="womic"&gt;Womic
&lt;/h3&gt;&lt;h3 id="无他伴侣"&gt;无他伴侣
&lt;/h3&gt;&lt;h3 id="万兴瞄影"&gt;万兴瞄影
&lt;/h3&gt;&lt;h3 id="pr-ae"&gt;Pr Ae
&lt;/h3&gt;&lt;h3 id="达芬奇"&gt;达芬奇
&lt;/h3&gt;&lt;h3 id="网易云音乐"&gt;网易云音乐
&lt;/h3&gt;&lt;h3 id="arctime"&gt;Arctime
&lt;/h3&gt;&lt;h3 id="audacity"&gt;Audacity
&lt;/h3&gt;&lt;h3 id="sibelius"&gt;Sibelius
&lt;/h3&gt;&lt;p&gt;&lt;a class="link" href="https://www.avid.com/zh/sibelius" target="_blank" rel="noopener"
 &gt;https://www.avid.com/zh/sibelius&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="flstudio"&gt;FlStudio
&lt;/h3&gt;&lt;h2 id="游戏"&gt;游戏
&lt;/h2&gt;&lt;h3 id="ubisoft"&gt;Ubisoft
&lt;/h3&gt;&lt;h3 id="steam"&gt;steam
&lt;/h3&gt;&lt;h3 id="kk联机加速器"&gt;KK联机加速器
&lt;/h3&gt;&lt;h3 id="战舰世界"&gt;战舰世界
&lt;/h3&gt;&lt;h3 id="mc"&gt;MC
&lt;/h3&gt;&lt;h3 id="极云普惠"&gt;极云普惠
&lt;/h3&gt;&lt;h2 id="编程语言"&gt;编程语言
&lt;/h2&gt;&lt;p&gt;Python
C
C++
C#
Java
html&lt;/p&gt;
&lt;h2 id="linux环境"&gt;Linux环境
&lt;/h2&gt;</description></item><item><title>Scratch初体验</title><link>https://ruajingjing.top/post/scratch%E5%88%9D%E4%BD%93%E9%AA%8C/</link><pubDate>Fri, 12 Apr 2019 00:01:52 +0000</pubDate><guid>https://ruajingjing.top/post/scratch%E5%88%9D%E4%BD%93%E9%AA%8C/</guid><description>&lt;img src="https://ruajingjing.top/" alt="Featured image of post Scratch初体验" /&gt;&lt;p&gt;3月23日这天我参加了学校的招聘会，顺利拿到一个实习。简单来说我的工作就是教小孩子编程，最近Python火得一塌糊涂，连浙江小学都在学。我所在的机构提供小学这个阶段的编程教育，我很有幸能把自己的知识分享出去，尤其是分享给未来的AI一代。MIT(麻省理工大学)搞了一个叫Scratch的东西，是专门给小朋友设计的可视化编程工具。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://scratch.mit.edu/" target="_blank" rel="noopener"
 &gt;Scratch - Imagine, Program, Share&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;可视化我很熟悉，我上大学三年以来基本都在把各种数据用各种颜色各种图标画出来。不过这编程可视化与数据可视化有所不同。编程可视化或者叫可视化编程，是不需要在编辑器界面打代码的，它用‘积木’来‘搭建’程序。我在第二天去公司面试，当场给老板上手撸了个程序——&lt;a class="link" href="https://scratch.mit.edu/projects/296746286/" target="_blank" rel="noopener"
 &gt;辛德瑞拉的字符串&lt;/a&gt;，就顺利通过了。点击链接可以看到我在Scratch社区发布的项目，还可以在线运行一下试试，按“A”键开始。&lt;/p&gt;
&lt;p&gt;打开Scratch3.0的编辑界面就是这样的，他还提供了中文版的，对国内用户十分友好，翻译通俗易懂，我觉得这个简单到真的不需要太多说明了，只要识字就会了。即使零编程基础，随便拖几个积木玩玩，玩着玩着就会了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Editor" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2019-3/ScratchNotes/ScratchEditor.png"&gt;&lt;/p&gt;
&lt;p&gt;而且官方也附带入门教程，还有中文社区，也提供一些优秀作品以供学习。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Example" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2019-3/ScratchNotes/ScratchExample.png"&gt;&lt;/p&gt;
&lt;p&gt;我的项目就是用了很多的角色控制的模块，核心功能就是那只鸽子做的字符串对比处理的工作，然后加了《灰姑娘》这个故事中的一些情节。字符串处理算是编程的一项基本功了，几乎每一门语言的新手入门教程都会有字符串的内容，当然找素数也是。
好像现代童话的《灰姑娘》删掉了一些情节，我记得我小时候读的《灰姑娘》有继母不让她参加舞会让他捡豆子的情节。现在大概觉得继母这样做有点神经质就取消掉了。哎，多好的教学素材。&lt;/p&gt;
&lt;p&gt;&lt;img alt="HGN" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2019-3/ScratchNotes/HGN.gif"&gt;&lt;/p&gt;
&lt;p&gt;假设用字符“X”代表豆子，其他字符代表灰，那么继母的工作就是打乱一碗豆子（“XXXX”）与一堆灰（“SDhjdjgdwebdkwefe”）的排列顺序，这个豆-灰混合物就可以用“XsdadassXadasXXssdad”来表示，而仙女教母派来的鸽子就是把这个豆-灰混合物用经典算法冒泡排序中的方法，比较字符的值，挑出豆子（“XXXX”）。&lt;/p&gt;
&lt;p&gt;&lt;img alt="HGN_Value" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://bugatii100peaglepics.oss-cn-qingdao.aliyuncs.com/2019-3/ScratchNotes/HGN_Value.gif"&gt;&lt;/p&gt;
&lt;p&gt;一开始，我的继母用的是官方的巫婆的那个形象，与目前这个版本比起来，那个后妈比较惊悚。给老板看了以后，她非常喜欢我做的这个项目，然后建议我换一个形象柔和一点，色彩明亮的人物，再加一个漂亮的背景，这样小孩子会比较喜欢。我努力回忆了一下童年看过的动画片，最后还是锁定了迪士尼版本的灰姑娘形象。童话梦工厂真的很梦幻。&lt;/p&gt;
&lt;p&gt;目前，这个项目还只不成熟。当时时间紧迫，我暂时随便抠了个图，人物有的地方缺了一大块。而且动画还没有配音，如果加上声音应该会很有喜感。&lt;/p&gt;</description></item></channel></rss>