当初写这个类可让我熬了两晚上的夜,当时对sha1算法一点不懂,完全是翻着密码学和一个js的范例看一行写一行。而且asp对位处理支持不好。需要模拟位操作,可折腾死我了. 当时密码hash大多用的是md5我突发奇想认为sha1 40位更安全,但网上有找不到asp的代码,于是就自己加班写了一个. 现在asp已淘汰,这个代码用处不大。但这是我和加sha1算法的最早接触. 里面很多代码都是为了用asp模拟位操作增加的.
<% '类方法 SHA1 Byte_Data As String sha1算法 Class CAMXAM_System_Encrypt_ Private Array_Power,Array_Bits Private ClassName,ClassAuthor,ClassDate Private Sub Class_Initialize() ClassName = "sha1" ClassAuthor = "石卓林" ClassDate = "2006年3月23日" End Sub Private Function Create_Array() '初始化指数数组 Dim Array_P(30),Array_B(30),Item For Item = 0 To 30 Step +1 Array_P(Item) = Clng(2 ^ Item) Array_B(Item) = Clng((2 ^ (Item+1))-1) Next Array_Power = Array_P Array_Bits = Array_B End Function Private Function LeftShift(Value,Bits)'按位左移 If Bits < 0 Or Bits > 31 Then Err.Raise 6 Exit Function End If If Bits = 0 Then LeftShift = Value Exit Function End If If Bits = 31 Then If Value And 1 Then LeftShift = &H80000000 Else
ASP实现SHA1算法的挑战与回忆

这篇博客讲述了作者如何在对SHA1算法一无所知的情况下,通过查阅资料和模仿JavaScript示例,克服ASP不支持位操作的困难,耗时两晚编写出SHA1算法的ASP实现。尽管现在ASP已经过时,这段经历成为作者初次接触SHA1和密码哈希的宝贵记忆。
最低0.47元/天 解锁文章
717

被折叠的 条评论
为什么被折叠?



