我需要计算Oracle,SQL Server和C#中结果集的校验和,因为我想检查它们是否完全相同。
示例数据:
CREATE TABLE [dbo].[TestTable](
[ParentArticleNumber] [nvarchar](50) NOT NULL,
[ArticleNumber] [nvarchar](50) NOT NULL,
[Amount] [decimal](18, 4) NOT NULL
)
GO
Insert Into TestTable (
ParentArticleNumber
, ArticleNumber
, Amount)
values
('Art1', 'Art3', 10.5)
, ('Art1', 'Art2', 20)
, ('Art4', 'Art2', 22.35)
Go
在C#中,字段的类型为string
和decimal
示例查询:
Select
ArticleNumber
, Amount
From
TestTable
Where
ParentArticleNumber = 'Art1'
如何计算一种在每个系统上得到相同结果的校验和的想法?
答案 0 :(得分:1)
使用公共哈希函数,例如MD5。
注意:这假设您要执行非常简单的校验和,如果您正在执行与安全性相关的哈希,则还有一些其他注意事项。具体来说:如果此输入来自不受信任的用户且他们不应该触发哈希冲突,请使用比MD5更安全的算法。
我不会发布示例,因为这基本上只是搜索MD5 +你想要做哈希的平台。
SQL:HashBytes
Generate MD5 hash string with T-SQL
C#:System.Security.Cryptography.MD5.Create().ComputeHash
calculate a MD5 hash from a string
甲骨文:
DBMS_CRYPTO