fix: preserve spaces in arguments during encryption/decryption#20
Open
12end wants to merge 1 commit into
Open
Conversation
- Base64 encode each argument individually before joining - Use newline as separator instead of space (newline won't appear in base64) - This fixes the issue where arguments with spaces were incorrectly split Fixes #19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes issue #19: "Bug:包含空格的参数值在加解密后会被错误拆分,导致参数个数/内容丢失"
Problem
The original code used
strings.Join(args, " ")andstrings.Split(output, " ")to serialize/deserialize arguments. When an argument value contained spaces, it would be incorrectly split during decryption, losing the original argument count and content.For example:
--name "hello world"["--name", "hello world"]["--name", "hello", "world"]Solution
Each argument is now base64-encoded individually before being joined with a newline separator. This ensures:
Changes
cargs.go: Modified encryption to base64-encode each argument individually, joined by newlinecargs.go: Modified decryption to split by newline and base64-decode each argumentcargs_test.go: Added comprehensive tests for various edge casesgo.mod/go.sum: Added for dependency managementTesting
All tests pass:
Fixes #19
@12end can click here to continue refining the PR