标签: checksum

CRC-16与0xA001多项式

我想用0xA001多项式计算字节数组的CRC-16校验和.但我真的不知道如何在Java中使用它,以及如何使用给定的多项式.它是某种特殊值(0xA001)吗?你能指点我一个可以为我计算校验和的图书馆,或者给我一些有用的资源吗?

在此先感谢,M.

java checksum crc

7
推荐指数
1
解决办法
1万
查看次数

关于Http大文件下载的MD5校验和

MD5校验和广泛用于Http下载大文件的完整性检查.我的问题是,因为TCP本身提供了可靠的机制(即每个TCP包的校验和以确保其完整性).因此,简而言之,TCP是可靠的.Http基于TCP(因此Http也应该是可靠的),那么为什么我们需要另一种完整性检查机制(即MD5校验和)?

乔治,提前谢谢

checksum md5 tcp http integrity

7
推荐指数
2
解决办法
4729
查看次数

java:需要提高校验和计算的性能

我正在使用以下函数来计算文件的校验和:

public static void generateChecksums(String strInputFile, String strCSVFile) {
    ArrayList<String[]> outputList = new ArrayList<String[]>();
    try {
        MessageDigest m = MessageDigest.getInstance("MD5");
        File aFile = new File(strInputFile);
        InputStream is = new FileInputStream(aFile);

        System.out.println(Calendar.getInstance().getTime().toString() + 
                    " Processing Checksum: " + strInputFile);

        double dLength = aFile.length();
        try {
            is = new DigestInputStream(is, m);
            // read stream to EOF as normal...
            int nTmp;
            double dCount = 0;
            String returned_content="";
            while ((nTmp = is.read()) != -1) {
                dCount++;
                if (dCount % 600000000 == 0) {
                    System.out.println(". …
Run Code Online (Sandbox Code Playgroud)

java file-io checksum

7
推荐指数
1
解决办法
1643
查看次数

校验和是否为整数数组?

我有一个大小为4,9,16或25的数组(根据输入)并且数组中的数字相同但少一个(如果数组大小为9则数组中的最大元素将是8)数字从0开始, 我想做一些算法来为数组生成某种校验和,这样我就可以比较2个数组是否相等,而不是遍历整个数组并逐个检查每个元素.

我在哪里可以获得这类信息?我需要一些尽可能简单的东西.谢谢.

编辑:只是为了清楚我想要的东西:

- 数组中的所有数字都是不同的,因此[0,1,1,2]无效,因为存在重复的元素(1)

- 数字的位置很重要,所以[0,1,2,3]与[3,2,1,0]不一样

- 数组将包含数字0,因此这也应该被考虑在内.

编辑:

好吧,我试着在这里实现Fletcher的算法:http: //en.wikipedia.org/wiki/Fletcher%27s_checksum#Straightforward

int fletcher(int array[], int size){
  int i;
  int sum1=0;
  int sum2=0;
  for(i=0;i<size;i++){
    sum1=(sum1+array[i])%255;
    sum2=(sum2+sum1)%255;
  }
  return (sum2 << 8) | sum1;
}
Run Code Online (Sandbox Code Playgroud)

说实话,我不知道返回线做了什么但不幸的是,算法不起作用.对于数组[2,1,3,0]和[1,3,2,0],我得到相同的校验和.

EDIT2:

好的,这是另一个,Adler校验和 http://en.wikipedia.org/wiki/Adler-32#Example_implementation

#define MOD 65521;

unsigned long adler(int array[], int size){
  int i;
  unsigned long a=1;
  unsigned long b=0;
  for(i=0;i<size;i++){
    a=(a+array[i])%MOD;
    b=(b+a)%MOD;
  }
  return (b <<16) | a;
}
Run Code Online (Sandbox Code Playgroud)

这也行不通.数组[2,0,3,1]和[1,3,0,2]生成相同的校验和.我在这里失去了希望,任何想法?

arrays algorithm checksum compare

7
推荐指数
1
解决办法
7153
查看次数

哈希MySQL数据库架构

我想制作一个MySQL数据库模式的哈希/签名(没有数据),以便对其进行校验和,以确保它不被其他人修改.

我怎样才能实现它?

mysql checksum

7
推荐指数
1
解决办法
2994
查看次数

对当前堆栈进行校验和

我想在main中对当前堆栈进行校验和,以检查它是否在两点之间被改变.

例如:

int main(void) {
    ...
    stack_checksum();

    ... process ...

    if(stack_checksum() != ...)
        altered.
}
Run Code Online (Sandbox Code Playgroud)

如何获取基本堆栈地址和堆栈顶部的当前地址?

编辑: 随着@MiroslavBajtoš帮助,步骤方法:

  • 将局部变量放在结构中
  • 检查回溯返回数组

c stack checksum

7
推荐指数
1
解决办法
246
查看次数

是否有一种快速简便的方法从Ruby的基本数据结构创建校验和?

我有一个Hash看起来像这样的数据结构():

{
    foo: "Test string",
    bar: [475934759, 5619827847]
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个校验和,Hash以检查将来是否相等.我尝试使用它的hash方法Hash,这导致了一个令人满意的好看的哈希,但事实证明,在Hash重新启动解释器后,相同的将产生不同的哈希.

我真的希望能够从创建〜128位的校验和Hash,StringArray实例.

这可能吗?

ruby hash checksum

7
推荐指数
1
解决办法
4287
查看次数

如何从JavaScript对象创建校验和?

我需要从JavaScript对象创建校验和.
不幸的是,由于JavaScript的对象排序,似乎没有一种简单的方法可以实现这一点.例如,取这些对象:

var obj1 = {type:"cake",quantity:0}
  , obj2 = {quantity:0,type:"cake"};
Run Code Online (Sandbox Code Playgroud)

我认为这些对象在数据上是相同的,并且希望它们的校验和是相同的.只要它们中的数据相同,我就真的不关心Object的顺序.
唉,JSON.stringify两者实际上并不相同; 作为对象的校验和的唯一方法是通过它的String表示,并且JSON.stringify-ed表示不相等,我的校验和将不相等!
我提出的一个解决方案是基于预定义的模式重新创建Object,如下所示:

var schema = ["type","quantity"];
function sortify(obj,schema){
  var n={};
  for(i in schema)
    n[schema[i]]=obj[schema[i]];
  return n
}
Run Code Online (Sandbox Code Playgroud)

运行JSON.stringify(sortify(obj1,schema))==JSON.stringify(sortify(obj2,schema))将返回true...但是以创建新对象并在数据周围移动为代价.

我的另一个解决方案是将JSON.stringify方法替换为从预定义模式中选择键并对其值进行字符串化,然后将它们连接在一起的方法.功能如下:

function smarterStringify(obj,schema){
  var s="";
  for(i in schema)
    s+=JSON.stringify(obj[schema[i]]);
  return s
}
Run Code Online (Sandbox Code Playgroud)

忽略这个方法没有返回正确的JSON(它足够接近作为我正在尝试做的一个例子)这一事实,它比速度上的第一个提升了很多(至少在我的Chrome OS浏览器中,你可以在这里自己检查:http://jsperf.com/sort-then-json-stringify-vs-smarter-stringify),当然它使两个Object String表示相等!

但是,我只是想知道我是否遗漏了某些东西并且有一个内置的方法,这样的事情一直没有a)驱动JavaScript GC进入病态案例或b)做太多的字符串连接.我宁愿不做那些.

javascript json checksum adler32

7
推荐指数
3
解决办法
1万
查看次数

如何生成校验和并在Javascript中转换为64位非常大的文件而不会溢出RAM?

问题:

  1. 如何正确生成校验和,这是独立的,一致的,独立于浏览器?另外,我想将SHA256/MD5校验和字符串转换为64位.

  2. 如何在没有大量RAM要求的情况下正确读取文件以生成校验和?即我们如何在不影响RAM的情况下处理1 GB文件

例如,是否可以在不将文件加载到内存的情况下读取文件?(见答案)

这个项目似乎很有希望,但也无法实现.


我的目的是在X MB的块中逐步/递增地生成校验和.这可能有助于避免一次使用太多RAM.
以下是代码,它没有按预期工作:

let SIZE_CHECKSUM = 10 * Math.pow(1024, 2); // 10 MB; But can be 1 MB too
async function GetChecksum (file: File):
Promise<string>
{
  let hashAlgorithm: CryptoJS.lib.IHasher<Object> = CryptoJS.algo.SHA256.create();
  let totalChunks: number = Math.ceil(file.size / SIZE_CHECKSUM);
  for (let chunkCount = 0, start = 0, end = 0; chunkCount < totalChunks; ++chunkCount)
  {
    end = Math.min(start + SIZE_CHECKSUM, file.size);
    let resultChunk: string = await (new Response(file.slice(start, end)).text());
    hashAlgorithm.update(resultChunk);
    start …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm checksum sha256 typescript

7
推荐指数
1
解决办法
606
查看次数

什么是 _md5.md5,为什么 hashlib.md5 这么慢?

_md5当对缓慢的 stdlibhashlib.md5实现感到沮丧时,发现这个没有记录。

在 macbook 上:

>>> timeit hashlib.md5(b"hello world")
597 ns ± 17.2 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
>>> timeit _md5.md5(b"hello world")
224 ns ± 3.18 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
>>> _md5
<module '_md5' from '/usr/local/Cellar/python/3.7.6_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/_md5.cpython-37m-darwin.so'>
Run Code Online (Sandbox Code Playgroud)

在 Windows 盒子上:

>>> timeit hashlib.md5(b"stonk overflow")
328 ns ± 21.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each) …
Run Code Online (Sandbox Code Playgroud)

python performance checksum md5 hashlib

7
推荐指数
1
解决办法
1528
查看次数

标签 统计

checksum ×10

algorithm ×2

java ×2

javascript ×2

md5 ×2

adler32 ×1

arrays ×1

c ×1

compare ×1

crc ×1

file-io ×1

hash ×1

hashlib ×1

http ×1

integrity ×1

json ×1

mysql ×1

performance ×1

python ×1

ruby ×1

sha256 ×1

stack ×1

tcp ×1

typescript ×1