blog/tools/aes/index.html
2024-01-12 17:18:07 +08:00

119 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=2"><meta name="theme-color" content="#FFF"><link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png"><link rel="icon" type="image/ico" sizes="32x32" href="/images/favicon.ico"><meta http-equiv="Cache-Control" content="no-transform"><meta http-equiv="Cache-Control" content="no-siteapp"><link rel="alternate" type="application/rss+xml" title="涛声依旧" href="https://hitoli.com/rss.xml"><link rel="alternate" type="application/atom+xml" title="涛声依旧" href="https://hitoli.com/atom.xml"><link rel="alternate" type="application/json" title="涛声依旧" href="https://hitoli.com/feed.json"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Mulish:300,300italic,400,400italic,700,700italic%7CFredericka%20the%20Great:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20JP:300,300italic,400,400italic,700,700italic%7CNoto%20Serif%20SC:300,300italic,400,400italic,700,700italic%7CInconsolata:300,300italic,400,400italic,700,700italic&display=swap&subset=latin,latin-ext"><link rel="stylesheet" href="/css/app.css?v=0.0.0"><link rel="canonical" href="https://hitoli.com/tools/aes/"><title>AES 加解密 | ☆∵∴Hito∴∵★ = 涛声依旧 = 天下事有难易乎?为之,则难者亦易矣</title><meta name="generator" content="Hexo 7.0.0"></head><body itemscope itemtype="http://schema.org/WebPage"><div id="loading"><div class="cat"><div class="body"></div><div class="head"><div class="face"></div></div><div class="foot"><div class="tummy-end"></div><div class="bottom"></div><div class="legs left"></div><div class="legs right"></div></div><div class="paw"><div class="hands left"></div><div class="hands right"></div></div></div></div><div id="container"><header id="header" itemscope itemtype="http://schema.org/WPHeader"><div class="inner"><div id="brand"><div class="pjax"><h1 itemprop="name headline">AES 加解密</h1></div></div><nav id="nav"><div class="inner"><div class="toggle"><div class="lines" aria-label="切换导航栏"><span class="line"></span> <span class="line"></span> <span class="line"></span></div></div><ul class="menu"><li class="item title"><a href="/" rel="start">☆∵∴Hito∴∵★</a></li></ul><ul class="right"><li class="item theme"><i class="ic i-sun"></i></li><li class="item search"><i class="ic i-search"></i></li></ul></div></nav></div><div id="imgs" class="pjax"><ul><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1gipexe4oykj20zk0m87ji.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1gipesx5fdwj20zk0m81kx.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1giph4fomxoj20zk0m8axp.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1giciuja1j1j20zk0m8kjl.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1giclwuom7cj20zk0m8dvn.jpg"></li><li class="item" data-background-image="https://nas.hitoli.com:18014/images/2022/10/29/6833939bly1giclga70tsj20zk0m84mr.jpg"></li></ul></div></header><div id="waves"><svg class="waves" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto"><defs><path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"/></defs><g class="parallax"><use xlink:href="#gentle-wave" x="48" y="0"/><use xlink:href="#gentle-wave" x="48" y="3"/><use xlink:href="#gentle-wave" x="48" y="5"/><use xlink:href="#gentle-wave" x="48" y="7"/></g></svg></div><main><div class="inner"><div id="main" class="pjax"><div class="page wrap"><article itemscope itemtype="http://schema.org/Article" class="post block" lang="zh-CN"><link itemprop="mainEntityOfPage" href="https://hitoli.com/tools/aes/"><span hidden itemprop="author" itemscope itemtype="http://schema.org/Person"><meta itemprop="image" content="/images/avatar.jpg"><meta itemprop="name" content="Hito Li"><meta itemprop="description" content="天下事有难易乎?为之,则难者亦易矣, 天生我材必有用"></span><span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="涛声依旧"></span><div class="body md" itemprop="articleBody"><p>&lt;head&gt;<br>&lt;!-- hexo-ignore-start --&gt;<br>&lt;style&gt;<br>.custom-input {<br>margin-bottom: 20px;<br>}<br>.custom-textarea {<br>width: 100%;<br>margin-bottom: 20px;<br>}<br>&lt;/style&gt;<br>&lt;script src=&quot;/tools/aes/crypto-js.min.js&quot;&gt;&lt;/script&gt;<br>&lt;!-- hexo-ignore-end --&gt;<br>&lt;/head&gt;<br>&lt;div class=&quot;tools wrap&quot;&gt;<br>&lt;!-- hexo-ignore-start --&gt;<br>&lt;div class=&quot;breadcrumb&quot; itemscope=&quot;&quot; itemtype=&quot;<span class="exturl" data-url="aHR0cHM6Ly9zY2hlbWEub3JnL0JyZWFkY3J1bWJMaXN0">https://schema.org/BreadcrumbList</span>&quot;&gt;<br>&lt;i class=&quot;ic i-home&quot;&gt;&lt;/i&gt;<br>&lt;span&gt;&lt;a href=&quot;/&quot; data-pjax-state=&quot;&quot;&gt; 首页 &lt;/a&gt;&lt;/span&gt;<br>&lt;i class=&quot;ic i-angle-right&quot;&gt;&lt;/i&gt;<br>&lt;span itemprop=&quot;itemListElement&quot; itemscope=&quot;&quot; itemtype=&quot;<span class="exturl" data-url="aHR0cHM6Ly9zY2hlbWEub3JnL0xpc3RJdGVt">https://schema.org/ListItem</span>&quot;&gt;<br>&lt;a href=&quot;/tools/&quot; itemprop=&quot;item&quot; rel=&quot;index&quot; title=&quot;工具&quot; data-pjax-state=&quot;&quot;&gt;&lt;span itemprop=&quot;name&quot;&gt; 工具 &lt;/span&gt;&lt;/a&gt;<br>&lt;meta itemprop=&quot;position&quot; content=&quot;1&quot;&gt;<br>&lt;/span&gt;<br>&lt;i class=&quot;ic i-angle-right&quot;&gt;&lt;/i&gt;<br>&lt;span class=&quot;current&quot; itemprop=&quot;itemListElement&quot; itemscope=&quot;&quot; itemtype=&quot;<span class="exturl" data-url="aHR0cHM6Ly9zY2hlbWEub3JnL0xpc3RJdGVt">https://schema.org/ListItem</span>&quot;&gt;<br>&lt;a href=&quot;/tools/aes/&quot; itemprop=&quot;item&quot; rel=&quot;index&quot; title=&quot;AES 加解密&quot; data-pjax-state=&quot;&quot;&gt;&lt;span itemprop=&quot;name&quot;&gt;AES 加解密 &lt;/span&gt;&lt;/a&gt;<br>&lt;meta itemprop=&quot;position&quot; content=&quot;2&quot;&gt;<br>&lt;/span&gt;<br>&lt;/div&gt;<br>&lt;!-- hexo-ignore-end --&gt;<br>&lt;div class=&quot;tools cloud&quot;&gt;<br>&lt;!-- hexo-ignore-start --&gt;<br>信息:&lt;textarea class=&quot;custom-textarea&quot; rows=&quot;4&quot; cols=&quot;50&quot; id=&quot;content&quot;&gt;&lt;/textarea&gt;&lt;br&gt;<br>秘钥:&lt;textarea class=&quot;custom-textarea&quot; rows=&quot;4&quot; cols=&quot;50&quot; id=&quot;encryptionKey&quot;&gt;&lt;/textarea&gt;&lt;br&gt;<br>是否使用 IV 向量:&lt;input type=&quot;radio&quot; id=&quot;useIv&quot; value=0 checked onclick=&quot;selectUseIv (this.value)&quot; /&gt;<br>&lt;input class=&quot;custom-input&quot; type=&quot;radio&quot; id=&quot;useIv&quot; value=1 onclick=&quot;selectUseIv (this.value)&quot; /&gt;&lt; br&gt;<br>IV 向量:&lt;textarea class=&quot;custom-textarea&quot; rows=&quot;4&quot; cols=&quot;50&quot; id=&quot;iv&quot;&gt;&lt;/textarea&gt;&lt;br&gt;<br>NoPadding&lt;input type=&quot;radio&quot; id=&quot;useNoPadding&quot; value=0 checked onclick=&quot;selectUseNoPadding (this.value)&quot; /&gt;<br>&lt;input class=&quot;custom-input&quot; type=&quot;radio&quot; id=&quot;useNoPadding&quot; value=1 onclick=&quot;selectUseNoPadding (this.value)&quot; /&gt;&lt; br&gt;<br>加密结果:&lt;textarea class=&quot;custom-textarea&quot; rows=&quot;4&quot; cols=&quot;50&quot; id=&quot;value1&quot;&gt;&lt;/textarea&gt;&lt;br&gt;<br>解密结果:&lt;textarea class=&quot;custom-textarea&quot; rows=&quot;4&quot; cols=&quot;50&quot; id=&quot;value2&quot;&gt;&lt;/textarea&gt;&lt;br&gt;<br>&lt;input type=&quot;button&quot; value=&quot;加密&quot; onclick=&quot;submit (1)&quot; /&gt;<br>&lt;input type=&quot;button&quot; value=&quot;解密&quot; onclick=&quot;submit (0)&quot; /&gt;<br>&lt;script&gt;<br>// 默认信息<br>document.getElementById (&quot;content&quot;).value = '{&quot;endTime&quot;: &quot;&quot;,&quot;keyword&quot;:&quot;&quot;, &quot;magnitude&quot;: &quot;&quot;,&quot;pageNum&quot;: 1,&quot;pageSize&quot;: 10,&quot;startTime&quot;:&quot;&quot;, &quot;xzqh&quot;: &quot;420&quot;}';<br>// 默认 aes 秘钥<br>document.getElementById (&quot;encryptionKey&quot;).value = &quot;l5gzm2n78wriiqux&quot;;</p><pre><code> // 加密函数
function encryptAES(text, key, conf) &#123;
// 使用 CryptoJS.AES 对象进行加密
var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(text), CryptoJS.enc.Utf8.parse(key), conf);
return encrypted.toString();
&#125;
// 解密函数
function decryptAES(encryptedText, key, conf) &#123;
// 使用 CryptoJS.AES 对象进行解密
var decrypted = CryptoJS.AES.decrypt(encryptedText, CryptoJS.enc.Utf8.parse(key), conf);
return decrypted.toString(CryptoJS.enc.Utf8);
&#125;
// 提交
function submit(type) &#123;
var encryptionKey = document.getElementById(&quot;encryptionKey&quot;).value;
// 模式ECB、CBC
// 补码Pkcs7、NoPadding
var conf = &#123;
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
&#125;
// 是否使用NoPadding
var useNoPadding = false;
if (document.querySelector('input[id=&quot;useNoPadding&quot;]:checked').value == 1) &#123;
useNoPadding = true;
&#125;
// 判断是否使用iv向量
if (document.querySelector('input[id=&quot;useIv&quot;]:checked').value == 1) &#123;
conf.mode = CryptoJS.mode.CBC;
if (useNoPadding) &#123;
conf.padding = CryptoJS.pad.NoPadding;
&#125;
var iv = document.getElementById(&quot;iv&quot;).value;
if (!iv) &#123;
selectUseIv(1);
iv = document.getElementById(&quot;iv&quot;).value;
&#125;
if (iv.length != 16) &#123;
alert(&quot;iv的长度必须是16位&quot;);
return;
&#125;
conf.iv = CryptoJS.enc.Utf8.parse(document.getElementById(&quot;iv&quot;).value);
&#125;
if (type == 1) &#123;
document.getElementById(&quot;value1&quot;).value = &quot;&quot;;
// 加密
var text = document.getElementById(&quot;content&quot;).value;
if (useNoPadding) &#123;
const blockSize = 16; // AES块大小为16字节
text = padToBlockSize(text, blockSize);
&#125;
if (!text) &#123;
alert(&quot;信息不能为空&quot;);
return;
&#125;
document.getElementById(&quot;value1&quot;).value = encryptAES(text, encryptionKey, conf);
&#125; else &#123;
document.getElementById(&quot;value2&quot;).value = &quot;&quot;;
// 解密
var encryptionText = document.getElementById(&quot;value1&quot;).value;
if (!encryptionText) &#123;
alert(&quot;加密结果不能为空&quot;);
return;
&#125;
var decryptText = decryptAES(encryptionText, encryptionKey, conf);
if (useNoPadding) &#123;
decryptText = removePadding(decryptText);
&#125;
document.getElementById(&quot;value2&quot;).value = decryptText;
&#125;
&#125;
// 选择是否使用iv向量
function selectUseIv(value) &#123;
if (value == 1) &#123;
document.querySelector('input[id=&quot;useIv&quot;][value=&quot;0&quot;]').checked = false;
if (!document.getElementById(&quot;iv&quot;).value) &#123;
var randomBytes = CryptoJS.lib.WordArray.random(128 / 8);
var randomHexString = randomBytes.toString(CryptoJS.enc.Hex);
document.getElementById(&quot;iv&quot;).value = randomHexString.substring(0, 16);
&#125;
&#125; else &#123;
document.querySelector('input[id=&quot;useIv&quot;][value=&quot;1&quot;]').checked = false;
document.getElementById(&quot;iv&quot;).value = &quot;&quot;;
&#125;
&#125;
// 选择是否使用NoPadding
function selectUseNoPadding(value) &#123;
if (value == 1) &#123;
document.querySelector('input[id=&quot;useNoPadding&quot;][value=&quot;0&quot;]').checked = false;
&#125; else &#123;
document.querySelector('input[id=&quot;useNoPadding&quot;][value=&quot;1&quot;]').checked = false;
&#125;
&#125;
// 确保明文长度是块大小的整数倍
function padToBlockSize(data, blockSize) &#123;
const paddingLength = blockSize - (data.length % blockSize);
const padding = String.fromCharCode(paddingLength).repeat(paddingLength);
return data + padding;
&#125;
// 去除填充
function removePadding(plaintext) &#123;
if (plaintext) &#123;
const paddingLength = plaintext.charCodeAt(plaintext.length - 1);
if (paddingLength &gt; 0) &#123;
plaintext = plaintext.slice(0, -paddingLength);
&#125;
&#125;
return plaintext;
&#125;
&lt;/script&gt;
&lt;!-- hexo-ignore-end --&gt;
&lt;/div&gt;
</code></pre><p>&lt;/div&gt;</p></div><footer><div class="meta"><span class="item"><span class="icon"><i class="ic i-calendar-check"></i> </span><span class="text">更新于</span> <time title="修改时间2024-01-12 09:31:49" itemprop="dateModified" datetime="2024-01-12T09:31:49+08:00">2024-01-12</time> </span><span id="tools/aes/" class="item leancloud_visitors" data-flag-title="AES 加解密" title="阅读次数"><span class="icon"><i class="ic i-eye"></i> </span><span class="text">阅读次数</span> <span class="leancloud-visitors-count"></span> <span class="text"></span></span></div><div class="reward"><button><i class="ic i-heartbeat"></i> 赞赏</button><p>请我喝[茶]~( ̄▽ ̄)~*</p><div id="qr"><div><img data-src="/images/wechatpay.png" alt="Hito Li 微信支付"><p>微信支付</p></div><div><img data-src="/images/alipay.png" alt="Hito Li 支付宝"><p>支付宝</p></div></div></div><div id="copyright"><ul><li class="author"><strong>本文作者: </strong>Hito li <i class="ic i-at"><em>@</em></i>涛声依旧</li><li class="link"><strong>本文链接:</strong> <a href="https://hitoli.com/tools/aes/" title="AES 加解密">https://hitoli.com/tools/aes/</a></li><li class="license"><strong>版权声明: </strong>本站所有文章除特别声明外,均采用 <span class="exturl" data-url="aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMC9kZWVkLnpo"><i class="ic i-creative-commons"><em>(CC)</em></i>BY-NC-SA</span> 许可协议。转载请注明出处!</li></ul></div></footer></article></div><div class="wrap" id="comments"></div></div><div id="sidebar"><div class="inner"><div class="panels"><div class="inner"><div class="contents panel pjax" data-title="文章目录"></div><div class="related panel pjax" data-title="系列文章"></div><div class="overview panel" data-title="站点概览"><div class="author" itemprop="author" itemscope itemtype="http://schema.org/Person"><img class="image" itemprop="image" alt="Hito Li" data-src="/images/avatar.jpg"><p class="name" itemprop="name">Hito Li</p><div class="description" itemprop="description">天生我材必有用</div></div><nav class="state"><div class="item posts"><a href="/archives/"><span class="count">54</span> <span class="name">文章</span></a></div><div class="item categories"><a href="/categories/"><span class="count">21</span> <span class="name">分类</span></a></div><div class="item tags"><a href="/tags/"><span class="count">92</span> <span class="name">标签</span></a></div></nav><div class="social"><span class="exturl item weibo" data-url="aHR0cHM6Ly93ZWliby5jb20vdS8xMDYxNDYwNzQ1" title="https:&#x2F;&#x2F;weibo.com&#x2F;u&#x2F;1061460745"><i class="ic i-weibo"></i></span> <span class="exturl item douban" data-url="aHR0cHM6Ly93d3cuZG91YmFuLmNvbS9wZW9wbGUvMjU5Mzc2NTY0" title="https:&#x2F;&#x2F;www.douban.com&#x2F;people&#x2F;259376564"><i class="ic i-douban"></i></span> <span class="exturl item music" data-url="aHR0cHM6Ly9tdXNpYy4xNjMuY29tLyMvdXNlci9ob21lP2lkPTEwNTQ2NzQ2Mw==" title="https:&#x2F;&#x2F;music.163.com&#x2F;#&#x2F;user&#x2F;home?id&#x3D;105467463"><i class="ic i-cloud-music"></i></span> <a href="/about/me" title="about&#x2F;me" class="item about"><i class="ic i-address-card"></i></a></div><ul class="menu"><li class="item"><a href="/" rel="section"><i class="ic i-home"></i>首页</a></li><li class="item dropdown"><a href="javascript:void(0);"><i class="ic i-feather"></i>文章</a><ul class="submenu"><li class="item"><a href="/archives/" rel="section"><i class="ic i-list-alt"></i>归档</a></li><li class="item"><a href="/categories/" rel="section"><i class="ic i-th"></i>分类</a></li><li class="item"><a href="/tags/" rel="section"><i class="ic i-tags"></i>标签</a></li></ul></li><li class="item"><a href="/tools/" rel="section"><i class="ic i-magic"></i>工具</a></li><li class="item"><span class="exturl" data-url="aHR0cHM6Ly93d3cuZm9yZXZlcmJsb2cuY24vZ28uaHRtbA=="><i class="ic i-paper-plane"></i>虫洞</span></li><li class="item"><a href="/about/me" rel="section"><i class="ic i-user"></i>关于</a></li></ul></div></div></div><ul id="quick"><li class="prev pjax"></li><li class="up"><i class="ic i-arrow-up"></i></li><li class="down"><i class="ic i-arrow-down"></i></li><li class="next pjax"></li><li class="percent"></li></ul></div></div><div class="dimmer"></div></div></main><footer id="footer"><div class="inner"><div class="widgets"><div class="rpost pjax"><h2>随机文章</h2><ul><li class="item"><div class="breadcrumb"><a href="/categories/Linux/" title="分类于 Linux">Linux</a> <i class="ic i-angle-right"></i> <a href="/categories/Linux/Shell/" title="分类于 Shell">Shell</a></div><span><a href="/2023/11/03/Linux%E4%B8%8B%E5%BF%AB%E9%80%9F%E9%83%A8%E7%BD%B2SpringBoot%E9%A1%B9%E7%9B%AE%E7%9A%84%E8%84%9A%E6%9C%AC/" title="Linux下快速部署SpringBoot项目的脚本">Linux下快速部署SpringBoot项目的脚本</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" title="分类于 极空间">极空间</a></div><span><a href="/2022/10/27/%E6%9E%81%E7%A9%BA%E9%97%B4web%E7%AB%AFhttps%E7%9B%B4%E8%BF%9Enginx%E9%85%8D%E7%BD%AE/" title="极空间web端https直连nginx配置">极空间web端https直连nginx配置</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E7%94%9F%E6%B4%BB/" title="分类于 生活">生活</a> <i class="ic i-angle-right"></i> <a href="/categories/%E7%94%9F%E6%B4%BB/%E6%97%A5%E5%B8%B8%E8%AE%B0%E5%BD%95/" title="分类于 日常记录">日常记录</a></div><span><a href="/2023/10/29/%E7%BB%99%E6%88%91%E7%9A%84%E8%80%81%E7%AC%94%E8%AE%B0%E6%9C%AC%E6%B8%85%E7%90%86%E7%81%B0%E5%B0%98/" title="给我的老笔记本清理灰尘">给我的老笔记本清理灰尘</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E5%B7%A5%E4%BD%9C/" title="分类于 工作">工作</a> <i class="ic i-angle-right"></i> <a href="/categories/%E5%B7%A5%E4%BD%9C/KLineChart/" title="分类于 KLineChart">KLineChart</a></div><span><a href="/2022/12/02/KLineChart%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%AE%9A%E4%B9%89%E6%8C%87%E6%A0%87%E7%94%BB%E5%9B%BE/" title="KLineChart实现自定义指标画图">KLineChart实现自定义指标画图</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" title="分类于 极空间">极空间</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" title="分类于 Docker">Docker</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/Hexo/" title="分类于 Hexo">Hexo</a></div><span><a href="/2022/10/21/Hexo-Theme-Shoka-Valine%E8%AF%84%E8%AE%BA%E9%85%8D%E7%BD%AE/" title="Hexo + Theme.Shoka + Valine评论配置">Hexo + Theme.Shoka + Valine评论配置</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/Linux/" title="分类于 Linux">Linux</a> <i class="ic i-angle-right"></i> <a href="/categories/Linux/%E6%9C%8D%E5%8A%A1/" title="分类于 服务">服务</a> <i class="ic i-angle-right"></i> <a href="/categories/Linux/%E6%9C%8D%E5%8A%A1/Nginx/" title="分类于 Nginx">Nginx</a></div><span><a href="/2022/09/27/nginx%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E9%85%8D%E7%BD%AE/" title="nginx负载均衡配置">nginx负载均衡配置</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" title="分类于 极空间">极空间</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" title="分类于 Docker">Docker</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/Hexo/" title="分类于 Hexo">Hexo</a></div><span><a href="/2022/09/17/Hexo-Theme-Shoka-algolia%E6%90%9C%E7%B4%A2%E8%B8%A9%E5%9D%91/" title="Hexo + Theme.Shoka + algolia搜索踩坑">Hexo + Theme.Shoka + algolia搜索踩坑</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/Linux/" title="分类于 Linux">Linux</a> <i class="ic i-angle-right"></i> <a href="/categories/Linux/%E6%9C%8D%E5%8A%A1/" title="分类于 服务">服务</a> <i class="ic i-angle-right"></i> <a href="/categories/Linux/%E6%9C%8D%E5%8A%A1/Nginx/" title="分类于 Nginx">Nginx</a></div><span><a href="/2022/11/30/Nginx%E9%85%8D%E7%BD%AEstream%E8%B8%A9%E5%9D%91/" title="Nginx配置stream踩坑">Nginx配置stream踩坑</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E5%B7%A5%E4%BD%9C/" title="分类于 工作">工作</a> <i class="ic i-angle-right"></i> <a href="/categories/%E5%B7%A5%E4%BD%9C/Vue/" title="分类于 Vue">Vue</a></div><span><a href="/2023/01/10/Vue%E6%A0%B9%E6%8D%AE%E8%B7%AF%E7%94%B1%E4%BC%A0%E5%8F%82%E4%BF%AE%E6%94%B9%E9%A1%B5%E9%9D%A2%E6%95%B0%E6%8D%AE/" title="Vue根据路由传参修改页面数据">Vue根据路由传参修改页面数据</a></span></li><li class="item"><div class="breadcrumb"><a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/" title="分类于 极空间">极空间</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/" title="分类于 Docker">Docker</a> <i class="ic i-angle-right"></i> <a href="/categories/%E6%9E%81%E7%A9%BA%E9%97%B4/Docker/Hexo/" title="分类于 Hexo">Hexo</a></div><span><a href="/2022/09/26/%E8%A7%A3%E5%86%B3Hexo-Shoka%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90%E6%97%A0%E6%B3%95%E6%92%AD%E6%94%BE%E7%9A%84%E9%97%AE%E9%A2%98/" title="解决Hexo+Shoka背景音乐无法播放的问题">解决Hexo+Shoka背景音乐无法播放的问题</a></span></li></ul></div><div><h2>最新评论</h2><ul class="leancloud-recent-comment"></ul></div></div><div class="status"><div class="copyright">&copy; 2010 <span itemprop="copyrightYear">2024</span> <span class="with-love"><i class="ic i-sakura rotate"></i> </span><span class="author" itemprop="copyrightHolder">Hito Li @ ☆∵∴Hito∴∵★</span></div><div class="count"><span class="post-meta-item-icon"><i class="ic i-chart-area"></i> </span><span title="站点总字数">121k 字</span> <span class="post-meta-divider">|</span> <span class="post-meta-item-icon"><i class="ic i-coffee"></i> </span><span title="站点阅读时长">1:50</span></div><div class="powered-by">基于 <span class="exturl" data-url="aHR0cHM6Ly9oZXhvLmlv">Hexo</span> & Theme.<span class="exturl" data-url="aHR0cHM6Ly9naXRodWIuY29tL2FtZWhpbWUvaGV4by10aGVtZS1zaG9rYQ==">Shoka</span></div></div></div></footer></div><script data-config type="text/javascript">var LOCAL={path:"tools/aes/",favicon:{show:"´3哎呀呀",hide:"(´Д`)真糟糕!"},search:{placeholder:"文章搜索",empty:"关于 「 ${query} 」,什么也没搜到",stats:"${time} ms 内找到 ${hits} 条结果"},valine:!0,fancybox:!0,copyright:'复制成功,转载请遵守 <i class="ic i-creative-commons"></i>BY-NC-SA 协议。',ignores:[function(e){return e.includes("#")},function(e){return new RegExp(LOCAL.path+"$").test(e)}]}</script><script src="https://nas.hitoli.com:18003/assets/polyfill.js"></script><script src="https://nas.hitoli.com:18003/assets/pace.min.js"></script><script src="https://nas.hitoli.com:18003/assets/pjax.min.js"></script><script src="https://nas.hitoli.com:18003/assets/fetch.umd.js"></script><script src="https://nas.hitoli.com:18003/assets/anime.min.js"></script><script src="https://nas.hitoli.com:18003/assets/algoliasearch-lite.umd.min.js"></script><script src="https://nas.hitoli.com:18003/assets/instantsearch.production.min.js"></script><script src="https://nas.hitoli.com:18003/assets/lozad.min.js"></script><script src="https://nas.hitoli.com:18003/assets/quicklink.umd.min.js"></script><script src="https://nas.hitoli.com:18003/assets/jquery.min.js,jquery.fancybox.min.js,jquery.justifiedGallery.min.js" async></script><script src="https://nas.hitoli.com:18003/assets/MiniValine.min.js"></script><script src="https://nas.hitoli.com:18003/assets/copy-tex.min.js" async></script><script src="https://nas.hitoli.com:18003/assets/frappe-charts.min.iife.js"></script><script src="/js/app.js?v=0.0.0"></script></body></html>