Skip to content

一种安全加密数据的方式,数据可以实现自校验,防止数据损坏和篡改(A way to securely encrypt data, the data can be self-verified to prevent data damage and tampering)

License

jan-bar/EncryptionFile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EncryptionFile

中文文档

for specific usage, please read: EncryptionFile_test.go

implementation

the password is related to the corresponding algorithm

I have this format here: password = [key + 0 + iv/nonce]

rsa ciphertext length rsa encrypted password data algorithm encrypted content hash value
len(rsa(password)) rsa(password) algorithm(content) hash.Sum(len(rsa(password)) + rsa(password) + algorithm(content))

cipher.AEAD

password composition: password = [key + 0 + nonce]

the nonce needs to be taken out correctly, and it must be ensured that there is no 0 in the key

cipher.Stream

password composition: password = [key + 0 + iv]

cipher.BlockMode

password composition: password = [key + 0 + iv]

example

support encryption schemes in golang standard library: cipher.AEAD,cipher.Stream,cipher.BlockMode

at the same time, several encryption schemes of aes are built in: CFB,CTR,OFB,CBC,GCM

// an encryption scheme can be specified with the built-in method
// GenEncCipher(cipher.NewCFBEncrypter)
// GenEncCipher(cipher.NewCTR)
// GenEncCipher(cipher.NewOFB)
// GenEncCipher(cipher.NewCBCEncrypter)
// GenEncCipher(cipher.NewGCM)
EncData(Reader, Writer, pubKey, md5.New(), GenEncCipher(cipher.NewCFBEncrypter))

// an decryption scheme can be specified with the built-in method
// GenDecCipher(cipher.NewCFBDecrypter)
// GenDecCipher(cipher.NewCTR)
// GenDecCipher(cipher.NewOFB)
// GenDecCipher(cipher.NewCBCDecrypter)
// GenDecCipher(cipher.NewGCM)
DecData(Reader, Writer, priKey, md5.New(), GenDecCipher(cipher.NewCFBDecrypter))

you can also refer to GenEncCipher to write the method of generating encryption

you can also refer to GenDecCipher to write the method of generating decryption

About

一种安全加密数据的方式,数据可以实现自校验,防止数据损坏和篡改(A way to securely encrypt data, the data can be self-verified to prevent data damage and tampering)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages