You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RNCryptor is a data format specificiation for AES encryption, with AES-256, random-salted PBKDF2,
AES-CBC, random IV, and HMAC. It has implementations in several languages.
package main
import(
"fmt""github.com/RNCryptor/RNCryptor-go"
)
funcmain() {
pass:="test"data:= []byte("hello world")
fmt.Printf("source: %v\n", string(data))
encrypted, _:=rncryptor.Encrypt(pass, data)
fmt.Printf("encrypted: %v\n", string(encrypted))
// if you need to send the encrypted data across// the wire, you'll probably want to call// `base64.StdEncoding.EncodeToString(encrypted)`// to base64 the data rather than transmiting raw bytesdecrypted, _:=rncryptor.Decrypt(pass, encrypted)
fmt.Printf("decrypted: %v\n", string(decrypted))
}
API
Encrypt(password string, data []byte) ([]byte, error)
Encrypts data using password. Automatically handles salting, iv-generation, and hmac signing.
Returns the decrypted data, or an error, if encryption was unsuccessful.
Password must be at least 1 character long.
encrypted, err:=rncryptor.Encrypt("securepassword", []byte("bytes to encrypt"))
iferr!=nil {
log.Printf("error encrypting data: %v", err)
}
// from here, you can encode `encrypted` however you want// base64.StdEncoding.EncodeToString(encrypted)
Decrypt(password string, data []byte) ([]byte, error)
Decrypts data using password. Returns un-encrypted data, or an error if decryption is
unsuccessful (e.g. password mismatch).
Password must match the password used during encryption
// if the encrypted data has been encoded, you'll need to decode it first// base64.StdEncoding.DecodeString("base64data")decrypted, err:=rncryptor.Decrypt("securepassword", []byte("encrypted bytes"))
iferr!=nil {
log.Printf("error decrypting data: %v", err)
}
Notes
If you'd like to help with any of the items below, send a pull-request!