Excel的加密方式(excel加密怎么加密)

Excel很特别的加密方式

昨天看到一个很奇怪的问题:

Excel的加密方式(excel加密怎么加密)

单元格中显示的是身份证号,但是单元格中却是不同的字符串。

第一感觉应该是自定义格式,但是查看之后发现并不是自定义的。

当然也不是简单的LEFT、RIGHT、MID函数就能搞定的,因为多出来的字符的位置并不固定,是随机插入的,不知道当初加密是用的什么程序。

心细的朋友放大来观察发现了问题的本质:

Excel的加密方式(excel加密怎么加密)

原来就是公式栏里显示的那个文本,通过把不相关的字符单独设置大小与颜色,使之不可见,从而显示出身份证号码。

知道了这个加密方式,解密就很简单了,我们可以写一个小程序,提取size为9的字符就可以了:

Sub fx()
Dim t() As String
Dim srng, drng As Range
Dim i, j, n, k As Integer
Set srng = Range("a2:a3") '加密区域
Set drng = Range("b2:b3") '解密结果区域
k = srng.Count '加密数据数量
For j = 1 To k
n = srng.Cells(j, 1).Characters.Count '单个字符串长度
ReDim Preserve t(n + 1)
For i = 1 To n
If srng.Cells(j, 1).Characters(Start:=i, Length:=1).Font.Size = 9 Then t(i) = srng.Cells(j, 1).Characters(Start:=i, Length:=1).Text Else t(i) = ""
'如果字体大小为9,就保留字符,否则为空

Next
idtext = Join(t, "") '合并提取的字符
drng.Cells(j, 1) = idtext '写入解密单元格
Next
End Sub

执行结果:

Excel的加密方式(excel加密怎么加密)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论