Ich habe einige Daten in Form von map und ich konvertiere es in [] byt und signiere es und beim Verifizieren gibt es True value auch wenn Daten für verwendet werden Verifizieren und Signieren sind anders. Hier ist, was ich DIDgehe crypto/ecdsa Verifiziere das Geben auch wenn die Daten unterschiedlich sind
func main(){
n, _ := ioutil.ReadFile("privatekey")
private_key,_ := x509.ParseECPrivateKey(n)
public_key := private_key.PublicKey
data := map[string]string{
"data1": "somestring",
"data2": "12312",
"data3": "34fs4",
}
json_data, _ := json.Marshal(data)
data_2 := map[string]string{
"data1": "somestring",
"data2": "13312",
"data4": "fh34",
}
json_data_2,_ := json.Marshal(data_2)
r, s, _ := ecdsa.Sign(rand.Reader, private_key, json_data)
verifystatus := ecdsa.Verify(&public_key, json_data_2, r, s)
fmt.Println(verifystatus)
}
Es druckt wahr. Ich versuchte, die Daten zu ändern, und es scheint, dass wenn If json_data und json_data_2 erste 32 Bytes gemeinsam haben, dann Verify true zurückgibt. Gibt es ein Limit über die Länge des Byte-Arrays, das ich an ecdsa.Verify() senden kann? Wenn ja, wie kann ich es für größere Daten verwenden?