问题标签 [data-integrity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3382 浏览

algorithm - 需要加密和完整性?

为什么有些场景需要加密和完整性,而有些场景只需要加密?在网络域的情况下,决定这一点的因素是什么?

0 投票
1 回答
5040 浏览

file - 一个合适的散列函数来检测数据损坏/检查数据完整性?

什么是最适合文件完整性检查(校验和)以检测损坏的哈希函数?

我需要考虑以下几点:

文件大小范围广(1 kb 到 10GB+)
许多不同的文件类型
大量文件(+/-100 TB 并且还在增长)

较大的文件是否需要更大的摘要大小(SHA-1 与 SHA 512)?

我看到 SHA 系列被称为加密哈希函数。它们是否不适合“通用”用途,例如检测文件损坏?像 MD5 或 Tiger 这样的东西会更好吗?

如果恶意篡改也是一个问题,你的答案会改变最合适的哈希函数吗?

外部库不是一个选项,只有在 Win XP SP3+ 上可用。

自然,性能也值得关注。

(如果我的术语不正确,请原谅我对这个主题的了解非常有限)。

0 投票
2 回答
98 浏览

sql - SQL 行修改约束

我有一个表,其中包含日志条目。是否可以对其施加约束,限制对行的所有修改,但仍允许添加和删除行?例如,如果我有:

应该不可能更改 id、时间、问题或结果,但应该可以创建新行或删除该行。

我正在使用甲骨文。

非常感谢!

0 投票
2 回答
126 浏览

php - 如何使用我的 php 脚本处理多用户连接?

如果我在数据库中编写脚本 php,
我应该处理数据库的锁定以避免用户之间的冲突吗?

或者这个问题是由网络服务器处理的吗?

0 投票
4 回答
782 浏览

xml - 检查 XML 配置文件内部一致性的工具、规则或流程

我从事过具有非常复杂的 XML 配置的项目,面临的一个问题是维护 XML 的内部一致性。

在这种情况下,我指的不是严格的 XML 模式一致性,而是使用的节点之间的更高级别的关系。大多数问题是由以 XML 编码的信息之间的隐式链接以及该信息与代码库的隐式关系引起的。示例可能是:

  • XML 节点数据隐式链接到代码中的枚举
  • 相同配置中相关的业务对象(因为它们共享需要一致的信息),它们之间没有任何明确的关系
  • 要在运行时编译和解析的 XML 中的代码

让我感到震惊的是a)这可能成为一种增加频率的做法,b)在某些情况下,我们隐含地创建了一种新的编码语言,它没有在编译时检查——实际上在它运行之前几乎没有检查。

是否还有其他人面临类似的情况,是否有任何工具或方法可以使问题更容易处理?我想要一些与技术无关的一般示例——我自己的具体经验是使用 C# 和专有系统的配置。

注意:尽管我在下面对此有答案,但我无意将自己的答案作为最终答案。

0 投票
2 回答
268 浏览

c - 计算“基于”的数据校验和。(SHA1/2 等)

我不确定如何问这个问题,但这是我所希望的,给定一个可能包含5+n键的结构(因此,我的系统有 5 个键是强制性的,其他键是可选的) - 我想要一个散列能够确定6具有相同键的键散列5是键结构的超集5并提供附加信息的机制。特别是散列机制,因为有一些约束阻止在每个请求上通过线路发送完整的结构。

为澄清起见,这里有一些信息(示例需要2+n密钥):

用 散列SHA-512-256结果看起来像:

当添加一个额外的键时,(下面的例子)我希望能够推断出扩展数据集是第一个的超集。

但是,不出所料, inMD5以及SHA-n我研究过的任何其他散列函数,都没有办法做到这一点,例如:

(显然)没有相似之处......

我们的用例,即格式化为结构的数据,由第 3 方输入到我们的系统中。处理数据非常昂贵,每次操作需要 2-3 秒,如果我们知道我们有上一次运行的结果,我们可以获得大约 50% 的时间,但是 - 贝叶斯和 Levenstein 文本差异算法不是适合这里,因为我们经常看到作为首字母缩略词的键/值对,以及在完全不相关时可能看起来相似的其他文本。

我们需要的是一种校验和数据的方法(我可能会偏向于我的回答)——这样我们就可以确定它是否包含所有相同的键和相同的数据B的超集。A然而,我们的键/值条目中经常有太多的数据,struc以至于每次通过网络发送它,只是为了确定我们已经看到了更完整的副本,这将是昂贵和浪费的。

0 投票
1 回答
370 浏览

linux - 如果我将数据块存储在 Linux PAGE_SIZE 的 1/n 或磁盘块大小中, mmap() 能否保证崩溃时的数据完整性?

我需要设计一个具有数据持久性和快速重新加载的系统,它是用mmap(). 但是mmap()用于持久性的系统通常会在系统崩溃时失去数据完整性,例如单节点 MongoDB。

我拥有的是一个非常扁平的数据结构来存储:数据被分成 1024 个大小的块,块之间没有依赖关系。在服务器正常运行期间,块会被随机且大量地访问和更新。

0 投票
8 回答
1348 浏览

sql - 可选的唯一约束?

我正在设置一个SaaS应用程序,多个客户端将使用它来输入数据。但是,我有一些客户 A 可能想要强制唯一的字段,客户 B 可能想要允许欺骗。显然,如果我要允许任何一个客户进行欺骗,那么该表可能没有唯一的约束。不利的一面是,如果我想对某些客户端强制执行唯一约束,我将不得不以其他方式进行。

有没有人解决过这样的问题,如果有,有哪些常见的解决方案和/或潜在的陷阱需要注意?

我认为检查任何可能的唯一标志的触发器可能是正确执行此操作的唯一方法。如果我依赖业务层,则无法保证应用程序在每次插入之前都会进行唯一检查。

解决方案:
首先我考虑了唯一索引,但排除了它,因为它们不能进行任何类型的连接或查找,只能表达值。而且我不想在每次添加客户端或更改客户端的唯一性偏好时都修改索引。

然后我查看了 CHECK CONSTRAINTS,经过一番鬼混之后,构建了一个函数来为两个假设列返回 true,客户端可以选择是否唯一。

这是我用来验证检查约束是否可以完成我想要的所有操作的测试表、数据和函数。

编辑:
不得不修改函数几次以在重复检查中捕获 NULL 值,但现在一切似乎都在工作。

0 投票
1 回答
4628 浏览

oracle - 列不为空,可延期

在 Oracle 中,延迟约束仅在提交时进行检查。

在 NOT NULL 约束的情况下,DEFERRABLE 子句的含义是什么?例如

在这些陈述之后,我认为下面的代码会起作用

但事实并非如此。

两种定义有什么区别?

0 投票
2 回答
80 浏览

database - 触发器:如何在 Oracle 中进行这种完整性限制?

我想这样每次添加 Pilot 类型或 Flight_Attendant 类型的寄存器时,都会添加 Crew 类型的寄存器。我在 10g 之上开发 Oracle 的 SQL Developer,我应该使用触发器吗?