上下文:我正在对 Lotusscript 实施 SHA-256 散列。
散列适用于 32 位。LotusScript 仅签署了Long。当结果大于 2,147,483,647 我们得到溢出。
问题:如何关闭Long 上的溢出检测?
如果不可能,是否有解决方法?我在思考Richard Schwartz在http://femkegoedhart.com/2012/02/05/lotusscript-timedifference-long-data-type-grrr/中所写的内容,我该如何使用 NotesDateTime 来帮助解决我的问题?
我应该“忘记这个”,然后如何在 Lotusscript 中进行散列(好吧,我可以考虑使用 LS2J 并使用标准的 java SHA 256)
当然,如果您有 SHA-256 的 LS 实现,这也是一个很好的回应 :-)
感谢您的帮助,我感到有些失落...
部分代码:
Dim T1 As Long
Dim h2 As Long
Dim Sigma1 As Long
Dim K_t As Long
h2=1541459225
Sigma1 = 21895337
K_t=1116352408
MsgBox String(32-Len(Bin$(h2)),"0")+Bin$(h2)+" " +"Bin$(h2)"+Chr$(13)+ _
String(32-Len(Bin$(Sigma1)),"0")+Bin$(Sigma1)+" " +"Bin$(Sigma1)"+Chr$(13)+ _
String(32-Len(Bin$(K_t)),"0")+Bin$(K_t)+" " +"Bin$(K_t)",,"DEBUG"
T1 = h2 + Sigma1
MsgBox "T1 = " & T1 & " binary representation:" + String(32-Len(Bin$(T1)),"0")+ Bin$(T1)
T1 = h2 + Sigma1 + K_t ' **this line cause overflow**
MsgBox "T1 = " & T1 & " binary representation:" + String(32-Len(Bin$(T1)),"0")+ Bin$(T1)
注意我的实现基于Chris Veness的工作:http ://www.movable-type.co.uk/scripts/sha256.html