19 lines
388 B
Go
19 lines
388 B
Go
package fingerprint
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// Hash computes a stable SHA-256 fingerprint from normalized frames.
|
|
func Hash(frames []NormalizedFrame) string {
|
|
var parts []string
|
|
for _, f := range frames {
|
|
parts = append(parts, f.Function+"\x00"+f.File)
|
|
}
|
|
data := strings.Join(parts, "\n")
|
|
sum := sha256.Sum256([]byte(data))
|
|
return fmt.Sprintf("%x", sum)
|
|
}
|