0%

DES对称加密

加密

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
// 从原始密匙数据创建DESKeySpec对象
DESKeySpec dks;
try {
dks = new DESKeySpec(key);
// 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey securekey = keyFactory.generateSecret(dks);
// Cipher对象实际完成加密操作
Cipher cipher = Cipher.getInstance(DES);
// 用密匙初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE, securekey, sr);
// 现在,获取数据并加密正式执行加密操作
return cipher.doFinal(src);
} catch (InvalidKeyException | NoSuchAlgorithmException | InvalidKeySpecException |
BadPaddingException | IllegalBlockSizeException | NoSuchPaddingException e) {
throw new CodecException("加密失败", e);
}

解密

1
2
3
4
5
6
7
8
9
10
11
12
13
// DES算法要求有一个可信任的随机数源
SecureRandom sr = new SecureRandom();
// 从原始密匙数据创建一个DESKeySpec对象
DESKeySpec dks = new DESKeySpec(key);
// 创建一个密匙工厂,然后用它把DESKeySpec对象转换成一个SecretKey对象
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES);
SecretKey securekey = keyFactory.generateSecret(dks);
// Cipher对象实际完成解密操作
Cipher cipher = Cipher.getInstance(DES);
// 用密匙初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE, securekey, sr);
// 现在,获取数据并解密正式执行解密操作
return cipher.doFinal(src);

平衡二叉树

平衡二叉树(AVL树),符合二叉查找树的定义,且满足一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树,通过左旋和右旋来得到插入或更新后树的平衡性。

当AVL树插入或删除节点的时候,平衡可能会被打破,此时就会通过左旋和右旋来进行平衡

Base64编码

Base64类是用于Base64编码的工具类,使用如下

1
2
3
4
5
6
7
8
9
String raw = "Base64编解码";
System.out.println("原文:"+raw);

byte[] b = raw.getBytes();
String encode = Base64.encodeBase64String(b);
System.out.println("编码后:"+encode);

String decode = new String(Base64.decodeBase64(encode));
System.out.println("解码后:"+decode);

结果如下

1
2
3
原文:Base64编解码
编码后:QmFzZTY057yW6Kej56CB
解码后:Base64编解码

这里所用的是commons-codec包中的Base64

hexo搜索引擎收录

hexo版本5.0.2 npm版本6.14.7 next版本7.8.0

写博客的目的肯定不是就只有自己能看到,想让更多的人看到就需要可以让搜索引擎来收录对应的文章。hexo支持生成站点地图sitemap

在hexo下的_config.yml中配置站点地图

1
2
3
4
5
6
7
url: https://zhhll.icu
sitemap:
url: https://zhhll.icu # 自己的域名
path: sitemap.xml #站点地图文件名称
baidusitemap:
url: https://zhhll.icu # 自己的域名
path: baidusitemap.xml #站点地图文件名称

然后在博客目录下安装

1
2
3
4
# 生成普通版本
npm install hexo-generator-sitemap --save
# 生成百度版本
npm install hexo-generator-baidu-sitemap --save

此时就会在public目录下生成对应的站点地图

阅读全文 »

hexo博客显示阅读时间和字数

hexo版本5.0.2 npm版本6.14.7 next版本7.8.0

效果如下

显示字数和时长

在博客目录下安装npm install hexo-symbols-count-time --save

_config.yml中加入配置

1
2
3
4
5
6
7
symbols_count_time:
#文章内是否显示
symbols: true
time: true
# 网页底部是否显示
total_symbols: true
total_time: true