Unterscheidung zwischen Signieren mit SHA256 und Signieren mit RSA-SHA256

Ich spiele mitdigitale Signature using node.js. Zu Testzwecken habe ich eine digitale Signatur einiger XML-Daten erstellt, wobei ich zuerst nur SHA256 und dann RSA-SHA256 verwendet habe.

Das, was mich verwirrt, ist, dass Beide Signaturmethoden erstellen genau die gleiche Signatur. Beide Unterschriften sind identisch. Wenn sie identisch sind, warum dann zwei verschiedene Methoden (SHA256 vs. RSA-SHA256)?

Ich füge folgenden Code hinzu:

var crypto = require('crypto'),
    path   = require('path'),
    fs     = require('fs'),

    pkey_path = path.normalize('private_key.pem'),
    pkey = '';

function testSignature(pkey) {
    var sign1 = crypto.createSign('RSA-SHA256'),
        sign2 = crypto.createSign('SHA256');

    fs.ReadStream('some_document.xml')
        .on('data', function (d) {
            sign1.update(d);
            sign2.update(d);
        })
        .on('end', function () {
            var s1 = sign1.sign(pkey, "base64"),
                s2 = sign2.sign(pkey, "base64");

            console.log(s1);
            console.log(s2);
        });
}

// You need to read private key into a string and pass it to crypto module.
// If the key is password protected, program execution will stop and
// a prompt will appear in console, awaiting input of password.

testSignature(fs.readFileSync(pkey_path));

Der obige Code gibt eine Zeichenfolge aus, die die Signatur ist, und dann wieder genau dieselbe Zeichenfolge, die auch eine Signatur derselben Daten ist, aber mit - angeblich - einem anderen Algorithmus erstellt wurde, die jedoch mit der vorherigen identisch ist ...

Antworten auf die Frage(4)

Ihre Antwort auf die Frage