mirror of
https://gitee.com/johng/gf
synced 2026-06-05 18:15:43 +08:00
This pull request introduces a new package, `gsha256`, providing SHA256 encryption utilities for both arbitrary data and file contents. It also adds comprehensive unit tests to ensure the correctness of these new APIs. **New SHA256 encryption utilities:** * Added the `gsha256` package with three main functions: - [`Encrypt`](diffhunk://#diff-664839ae1ff382c08d451abed4ad531eabffa7ef294becde4a0c580be482a9cfR1-R52): Hashes any variable using SHA256, converting input to bytes via `gconv`. - [`EncryptFile`](diffhunk://#diff-664839ae1ff382c08d451abed4ad531eabffa7ef294becde4a0c580be482a9cfR1-R52): Hashes the contents of a file at a given path, returning the SHA256 digest as a hex string. Errors are wrapped for clarity. - [`MustEncryptFile`](diffhunk://#diff-664839ae1ff382c08d451abed4ad531eabffa7ef294becde4a0c580be482a9cfR1-R52): Like `EncryptFile`, but panics on error for convenience in situations where failure is unexpected. **Unit tests for new functionality:** * Added `gsha256_z_unit_test.go` to test the new APIs: - Verifies correct hash output for string and struct input to `Encrypt`. - Validates file hashing and error handling for non-existent files in `EncryptFile`. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: joy999 <5414344+joy999@users.noreply.github.com>