هشینگ مدرن با رفتن: یک راهنما

سلام! برای شیرجه رفتن به دنیای هش با Go آماده هستید؟ چه در حال ساختن یک برنامه کاربردی امن باشید و چه فقط سعی در افزایش سرعت ساختار داده خود داشته باشید، در جای مناسبی هستید. بیایید همه چیزهایی را که باید در مورد استفاده از توابع هش در Go بدانید، با نمونه‌های دنیای واقعی فراوانی که می‌توانید از امروز شروع کنید، توضیح می‌دهیم.

Hashing All About in Go چیست؟

قبل از اینکه وارد کد شویم، بیایید چیزی را به درستی دریافت کنیم: Go دو نوع اصلی توابع هش را به ما می دهد تا با آنها بازی کنیم. آنها را به عنوان دو ابزار مختلف در جعبه ابزار خود در نظر بگیرید:

  • هش های غیر رمزنگاری: این ها شیاطین سرعت شما هستند (مانند FNV)
  • هش رمزنگاری: اینها محافظان امنیتی شما هستند (مانند SHA-256)

بگذارید منظورم را به شما نشان دهم.

The Speed ​​Demon: Non-Cryptographic Hashes

هنگامی که شما فقط به چیزی سریع نیاز دارید و به امنیت اهمیت نمی دهید (مانند حافظه پنهان داخلی)، FNV دوست شماست. در اینجا نحوه استفاده از آن آمده است:

package main

import (
    "fmt"
    "hash/fnv"
)

func getFNVHash(s string) uint64 {
    h := fnv.New64a()
    h.Write([]byte(s))
    return h.Sum64()
}

func main() {
    text := "hey there!"
    hash := getFNVHash(text)
    fmt.Printf("Here's your FNV hash: %d\n", hash)
}

خیلی سرراست، درست است؟ اما نکته اینجاست: هرگز از آن برای رمزهای عبور یا هر چیز مرتبط با امنیت استفاده نکنید. مثل استفاده از یک قفل لاستیکی است -…

Source link