小编Vin*_* Li的帖子

golang输入字节0处的非法base64数据

我有一个 go test 程序来从文件中读取加密内容并解密它,但它得到如下输出:

\n\n

输入字节 0 处的非法 Base64 数据

\n\n

如果我将加密内容硬编码在 golang 字符串变量中,它可以很好地解密。我在这里缺少什么?我在 stackoverflow 中搜索了类似的错误,有类似的报告,但与我遇到的问题不完全相同。测试代码如下:

\n\n
package main\n\nimport (\n"crypto/aes"\n"crypto/cipher"\n"crypto/rand"\n"encoding/base64"\n"errors"\n"fmt"\n"io"\n"bufio"\n"os"\n"log"\n\n)\n\n\nfunc check(e error) {\n    if e != nil {\n        panic(e)\n    }\n}\n\nfunc main() {\n    plaintext := []byte("textstring")\n    key := []byte("a very very very very very secre")\n    fmt.Printf("%s\\n", plaintext)\n\n    fh, err := os.Open("./test.txt")\n    check(err)\n    scanner := bufio.NewScanner(fh)\n    var encrypted_text string\n    if scanner.Scan() { //<==========READ FROM FILE\n    encrypted_text = scanner.Text()\n        fmt.Println("encrypted_text from file: ", encrypted_text)\n    } else { //<===========HARD CODE HERE\n        encrypted_text  = "\\xf2F\\xbc\\x15\\x9d\\xaf\\xce\xcf\x98\\xa3L(>%\\xa2\\x94\\x03_\\x99\\u007fG\\xd8\\v\\xbf\\t#u\\xf8:\\xc0D\\u007f"\n …
Run Code Online (Sandbox Code Playgroud)

encryption base64 go

6
推荐指数
1
解决办法
2万
查看次数

按位运算导致分段故障

我试图理解以下代码中的按位操作,但它会导致分段错误

#include <stdio.h>
#include <stdint.h>

 main()
 {
     uint16_t newmss = 1024;
     uint8_t  *opt;
     unsigned int i = 0;

     opt[i] = (newmss & 0xff00) >> 8;
     opt[i+1] = newmss & 0x00ff;

     fprintf(stderr, "opt[0] is %d", opt[0]);
     fprintf(stderr, "opt[1] is %d", opt[1]);

 }
Run Code Online (Sandbox Code Playgroud)

用.编译 gcc -g -o shift shift.c

然后执行shift,我得到了Segmentation故障

# ./shift
Segmentation fault

using gdb to debug

(gdb) run
Starting program: /home/vincent/shift

root@vincent-desktop:/home/vincent# gdb shift
GNU gdb (GDB) 7.1-ubuntu

(gdb) run
Starting program: /home/vincent/shift

Program received signal SIGSEGV, Segmentation fault.
0x0804843f …
Run Code Online (Sandbox Code Playgroud)

c

2
推荐指数
1
解决办法
1061
查看次数

标签 统计

base64 ×1

c ×1

encryption ×1

go ×1