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内快速构建基础加密,提升数据隐私性。记住,保持密钥安全是加密的核心。