Excel加密函数:数据保护的新利器
1. 引言
在日常办公中,Excel常被用于存储敏感数据(如密码、财务信息)。虽然Excel提供工作簿密码保护,但有时我们需要在单元格级别对特定数据加密,且不依赖VBA或插件。幸运的是,借助Excel内置函数,我们可以构建轻量级加密公式。本文将介绍几种基于函数的加密技巧。
2. 基础字符串移位加密
最简单的加密方式是通过字符编码偏移。例如,将每个字母的ASCII码加1(类似凯撒密码)。
- 加密公式:
=CHAR(CODE(A1)+1) - 解密公式:
=CHAR(CODE(A1)-1)
但此方法仅适用于单个字符。若要加密整个字符串,需使用数组公式或辅助列。例如,假设A1为“HELLO”,在B1输入:=CONCAT(CHAR(CODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))+1))(按Ctrl+Shift+Enter输入)。解密时减1即可。
3. XOR加密(伪随机密钥)
XOR(异或)加密在计算机领域广泛使用。在Excel中,我们可以用BITXOR函数(Excel 2013+)对数字进行加密。例如:
- 加密数字:
=BITXOR(A1, 123)(123为密钥) - 解密:再次执行相同运算:
=BITXOR(B1, 123)
若要加密文本,可将每个字符的Unicode码与密钥异或:=CHAR(BITXOR(UNICODE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)), 65)),同样为数组公式。密钥可自定义,且支持密钥重复或变长。
4. Base64编码(伪加密)
虽然Base64不是真正的加密,但能隐藏原始数据。Excel没有原生Base64函数,但可通过自定义名称或组合函数实现。例如,利用WEBSERVICE调用在线API,或使用以下VBA等价公式(仅适用简单字符串):
=LET(text,A1, CONCAT(CHOOSE(MOD(SEQUENCE(LEN(text)*2)-1,3)+1, "", "", "=="))) 实际不完整,推荐使用=ENCODEURL(text)(URL编码)作为替代,虽然非标准Base64,但可混淆数据。
5. 实战示例:加密工资单
假设B2:B10包含工资数据,想加密后显示在C列。使用XOR加密:在C2输入数组公式(Ctrl+Shift+Enter):
=CHAR(BITXOR(UNICODE(MID(B2,ROW(INDIRECT("1:"&LEN(B2))),1)), 42)),并向下填充。解密时只需再次应用相同公式(密钥42需一致)。
6. 注意事项与扩展
- 这些方法安全性较低,仅适合防君子不防小人。
- 加密结果可能包含不可见字符,建议配合
TEXTJOIN处理。 - 对于高强度需求,建议使用VBA的Cryptographic Service Provider或Power Query。
通过上述技巧,你可以在Excel内快速构建基础加密,提升数据隐私性。记住,保持密钥安全是加密的核心。