我正在使用zlib的adler32函数来计算一块内存x(长度为4096)的弱校验和.一切都很好,但是现在我想执行滚动校验和,如果来自不同文件的块不匹配,但是,我不知道如何编写一个函数来执行zlib中adler32返回的值.因此,如果校验和不匹配,如何使用原始校验和,x + 1字节和x + 4096 + 1来计算滚动校验和?基本上试图建立rsync实现.
提前致谢.
我在 SQL Server 2008 中有一个现有数据库,它通过存储过程为现有 PHP Web 应用程序执行用户身份验证。Web应用程序向存储过程发送一个字符串,但存储过程存储,并使用SQL Checksum检查该值(http://msdn.microsoft.com/en-us/library/ms189788.aspx ) 检查该值。存储过程将字符串转换为 NVARCHAR(50),并将 CHECKSUM 作为 int 存储在用户表中。
我现在正在现有数据库之上编写一个新的 Java 应用程序,并且正在编写一个自定义 spring 身份验证管理器。我想用 Java 重新实现 CHECKSUM 算法,这样我就不需要调用存储过程来执行转换,但是我找不到任何有关 SQL CHECKSUM 如何工作的文档。
我尝试了以下代码,猜测它是 CRC32,但是它无法返回与 SQL CHECKSUM 相同的值:
String pass = "foobar";
CRC32 crc32 = new CRC32();
crc32.update(pass.getBytes("UTF-16")); //This is due to the stored procedure casting as nvarchar
crc32.getValue();
Run Code Online (Sandbox Code Playgroud)
谁能告诉我 SQL CHECKSUM 使用的算法,以便我可以用 Java 重新实现它?
问题也不在于哪种算法提供最佳的安全哈希值。在此特定情况下,安全性超出了要求,因为我们不准备强制重置系统范围的密码。问题是T-SQL CHECKSUM 使用什么算法,以便可以重新实现它。这个特定的用例用于身份验证,但是在许多不同的应用程序中可能需要这样做。
我想自动生成一个唯一的 8-10 个字符 ID 字符串,其中包含某种校验和位,以防止数据输入时出现拼写错误。我更喜欢没有序列号的东西,数据输入人员最终会陷入“陈规”并习惯于始终键入相同的序列。
是否有与此类事情相关的最佳实践/陷阱?
更新:好的,我想我需要提供更多细节。
第二次更新好吧,我不明白这有什么令人困惑的,但我会尝试进一步解释。我正在尝试创建将在表格中显示的跟踪号码,该表格将在稍后填写并输入数据。我将生成 id 并将其贴在表单上;id 需要是唯一的,它需要支持很多数字,并且对于数据输入来说它需要具有合理的防白痴功能。
我不知道这是否已经做到了,或者即使可以做到,但问一下也无妨。
我在与加速度计传感器的通信方面遇到了一些问题。传感器连续输出约 8000 个读数/秒。传感器通过适配器插入 USB 端口并显示为 com4。我的问题是我似乎无法从字节流中挑选出传感器读取数据包。数据包大小为 5 个字节,格式如下:
High nibble Low nibble
Byte 1 checksum, id for packet start X high
Byte 2 X mid X low
Byte 3 Y high Y mid
Byte 4 Y low Z high
Byte 5 Y mid Y low
Run Code Online (Sandbox Code Playgroud)
X, y, z 是加速度。
在传感器的文档中,它指出第一个字节中的高半字节是校验和(计算的 Xhigh+Xlow+Yhigh+Ylow+Zhigh+Zlow),也是数据包开始的标识。我对针对外部设备进行编程还很陌生,无法真正掌握如何将校验和用作包开始的标识符(校验和不会一直更改吗?)。这是识别数据包开始的常用方法吗?有谁知道如何解决这个问题?
任何帮助将不胜感激。
我正在尝试使用一种安全的方式为文件创建校验和(大于 10GB !)。
SHA256 对我来说已经足够安全了,但是这种算法的处理成本太高,而且不适合。好吧,我知道 SHA1 和 MD5 校验和在冲突中都是不安全的。
所以我只是认为最快和最安全的方法是将 MD5 与 SHA1 结合,例如:SHA1+MD5,我认为没有办法同时获取具有相同 MD5 和 SHA1 的文件(碰撞)。
那么结合 SHA1+MD5 对文件校验和是否足够安全?或者是否有任何类似碰撞的攻击?
我以两种方式使用 c# mono(Bufferstream 和不使用 Bufferedstream)
public static string GetChecksum(string file)
{
using (FileStream stream = File.OpenRead(file))
{
var sha = new SHA256Managed();
byte[] checksum = sha.ComputeHash(stream);
return BitConverter.ToString(checksum).Replace("-", String.Empty);
}
}
public static string GetChecksumBuffered(Stream stream)
{
using (var bufferedStream = new BufferedStream(stream, 1024 * 32))
{
var sha = new SHA256Managed();
byte[] checksum = sha.ComputeHash(bufferedStream);
return BitConverter.ToString(checksum).Replace("-", String.Empty); …
Run Code Online (Sandbox Code Playgroud) 有没有办法禁用活动存储的校验和?我正在使用亚马逊 s3 存储从回形针迁移到活动存储。如果不与存储桶通信,就无法获取 md5 校验和加密代码,这对于迁移我们的生产数据库中的数百万个附件来说太耗时。校验和列具有 null: false 约束,删除此约束会在迁移和上传文件时引发似乎不可避免的错误。我觉得我一定在这里遗漏了一些东西,有什么方法可以避免使用校验和列吗?
checksum md5 ruby-on-rails amazon-web-services rails-activestorage
生成校验和的功能似乎已从安装插件转移到部署插件(请参阅MDEPLOY-231)。似乎不再有参数来控制校验和的生成和部署,无论是在安装插件 3.0.0-M1中(“createChecksum”参数显然不再存在),还是在部署插件 3.0.0-中M1。
我假设现在默认情况下会激活校验和(请参阅此博客文章),但最终我的本地存储库和 Artifactory 中都没有任何校验和,并且我在日志中看不到任何与校验和相关的内容(运行 mvn deploy)。
这应该不重要,但也许是:我使用的是 https 传输,而不是 ssh。
这里是日志摘录:
[INFO] --- maven-install-plugin:3.0.0-M1:install (default-install) @ base-module ---
[INFO] Installing C:\data\src\s-libs\base\target\base-module-0.2.5-SNAPSHOT.jar to (...)
[INFO] Installing C:\data\src\s-libs\base\pom.xml to (...)
[INFO] Installing C:\data\src\s-libs\base\target\base-module-0.2.5-SNAPSHOT-sources.jar to (...)
[INFO]
[INFO] --- maven-deploy-plugin:3.0.0-M1:deploy (default-deploy) @ base-module ---
Downloading (...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/0.2.5-SNAPSHOT/base-module-0.2.5-20200311.190843-3.jar
(...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/0.2.5-SNAPSHOT/base-module-0.2.5-20200311.190843-3.pom
(...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/0.2.5-SNAPSHOT/base-module-0.2.5-20200311.190843-3-sources.jar
(...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/0.2.5-SNAPSHOT/maven-metadata.xml
(...)
Uploading to psys_mvn: https://psys.ex1.de/artifactory/psys_mvn/de/ex1/psys/base-module/maven-metadata.xml
(...)
Run Code Online (Sandbox Code Playgroud) 我是原生 android 中的 SDK 示例应用程序,使用 Glide 库加载图像,如下所示。
private void updateProfilePhoto(BadgeUIEntity badgeUIEntity) {
String profilePhotoChecksum = badgeUIEntity.profilePhotoChecksum();
String profilePhotoUrl = badgeUIEntity.profilePhotoUrl();
if (profilePhotoChecksum != null && !TextUtils.isEmpty(profilePhotoUrl)) {
try {
RequestOptions requestOptions = RequestOptions.signatureOf(new ObjectKey(profilePhotoChecksum));
Glide.with(this)
.applyDefaultRequestOptions(requestOptions)
.load(profilePhotoUrl).into(ivProfilePhoto);
} catch (Exception e) {
Timber.v(e);
}
}}
Run Code Online (Sandbox Code Playgroud)
如何在颤振中渲染相同的图像?我不知道如何处理 Flutter 中的这个校验和。
我正在尝试与 RSK 主网上的智能合约进行交互,但出现此错误...
Provided address "0xAb2d290b7a600f5eA8d5B933f6F15c867Fd7e60e" is invalid,
the capitalization checksum test failed,
or its an indirect IBAN address which can't be converted.
Run Code Online (Sandbox Code Playgroud)
该地址是从 RSK Explorer 本身获得的,所以我不确定为什么 web3.js 会出现此错误。
拜托,有人可以帮我吗?
提前致谢!