gitee.com/h79/goutils@v1.22.10/common/algorithm/pkcs_test.go (about) 1 package algorithm 2 3 import ( 4 "bytes" 5 "fmt" 6 "testing" 7 ) 8 9 func TestCrypt_Decrypt(t *testing.T) { 10 11 var privKey = []byte(`-----BEGIN RSA PRIVATE KEY----- 12 MIICXQIBAAKBgQCVZ625ZMlW8VmhH8K7R4qtJHZRgkzi0g+JZytEVUTLQ8aQ7Wl7 13 KZjHPnih1U8f5XBFEyn+LHsAcNvA77D/17igzLIZ5nIyfggIAOS26ie4HHEyH6Wl 14 pMA3F1o/+k4yGok//9tvdF/OboQGo1mXpeztQrM8GU3KPJFMKOg9skk7YwIDAQAB 15 AoGAR/45vEhQrNCH/Bgt4cjLjjsvuH8tRW8rhW5tbvQXvkreeB+u4GZe9EOqJXGA 16 O0J4IxDk/1G3w7Kecg4OIHp2wGfzoEPTFmv3uZ+KnQZTZ9wUudsgsS5kSvjQ9kLF 17 SPv/eD2EKC3DJWfJA1VcetDMB0WQdqZt3uMTl3qWoLBhn0ECQQCw2yHy7mhVQGrf 18 W1xvfIULXrkY+T/HUF/YhJEaPvnC0fVCZC6Up/SLLdXCdM0tR1cAuaD+GkTObKlv 19 4qRhmu17AkEA2EO4406oiqe5/udyqTp4bd6TfI1dNvwBbBGlPztzWMhH8YnBMuUw 20 V+MWVcoabCPRtpysI3970ximXoFGo1ChOQJAUuUDTpiMcpkU/sgV1XOp8KBfZeM+ 21 D7AOnK/WS1UFQFmk+Y93fdoTd0DuloyktvpfP0nCuheZ9J9d88Fphw5VDQJBANPw 22 Omb5FQ8dJJf8dlAGLzNtJxiu6SUTfslL2afIOVhOnsLE/4NDPEdFEwRsFczYpZLS 23 o5f+PXk49QI0qucuA3ECQQCGWhNOznEoZX+4RvHj1NvjSwyvc5I4dfbhUukTfTgC 24 5xGIOb5kJ/5IsE39Bo6rxmOLurlbP9xA5urgYvEQ/iAZ 25 -----END RSA PRIVATE KEY-----`) 26 27 var pubKey = []byte(`-----BEGIN PUBLIC KEY----- 28 MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVZ625ZMlW8VmhH8K7R4qtJHZR 29 gkzi0g+JZytEVUTLQ8aQ7Wl7KZjHPnih1U8f5XBFEyn+LHsAcNvA77D/17igzLIZ 30 5nIyfggIAOS26ie4HHEyH6WlpMA3F1o/+k4yGok//9tvdF/OboQGo1mXpeztQrM8 31 GU3KPJFMKOg9skk7YwIDAQAB 32 -----END PUBLIC KEY-----`) 33 34 orig := "hello" 35 36 pkcs := NewPKCS1() 37 raw, er := pkcs.Encrypt([]byte(orig), pubKey) 38 if er != nil { 39 return 40 } 41 raw = "jD/WK7XW8JohMeEE7aBarPsZ8p/YChLaQJPzU0RPvyF2oX9zV6JlI8kMf1Jw0IbZSeNQoK+8JhNhQ9UJjFsqrbl+Nu738zURxZksaONHOeCOjnQGgxR/Wye9SBF05VAlz0x2brMLYpobftX0+CBWztsOY6g37/6OWsW44nGRx5E=" 42 orig2, err := pkcs.Decrypt(raw, privKey) 43 if err != nil { 44 return 45 } 46 t.Log("OK: ", string(orig2)) 47 } 48 49 func TestNewPKCS(t *testing.T) { 50 const key = "1r1tE7lZDHgKHK5A" 51 pkc7 := NewPKCS7() 52 xx, _ := pkc7.Encrypt([]byte("13234567890"), []byte(key)) 53 t.Log(xx) 54 mobile, _ := pkc7.Decrypt("b9gAYgUCMkTQg+9v3Wb+NlVoHGksCaJM/Hz+brt+UvE=", []byte(key)) 55 t.Log(string(mobile)) 56 } 57 58 func TestSignWithSha1(t *testing.T) { 59 noncestr := "Wm3WZYTPz0wzccnW" 60 jsapi_ticket := "sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg" 61 timestamp := "1414587457" 62 url := "http://mp.weixin.qq.com?params=value" 63 64 noncestr = fmt.Sprintf("noncestr=%v", noncestr) 65 timestamp = fmt.Sprintf("timestamp=%v", timestamp) 66 jsapi_ticket = fmt.Sprintf("jsapi_ticket=%v", jsapi_ticket) 67 url = fmt.Sprintf("url=%v", url) 68 69 sign, _ := SignWithSha1("&", noncestr, jsapi_ticket, timestamp, url) 70 t.Log("sign: ", sign) 71 72 } 73 74 func TestPKCS1_Generate(t *testing.T) { 75 pkcs := NewPKCS1() 76 77 pubKey := &bytes.Buffer{} 78 priKey := &bytes.Buffer{} 79 out := &RsaKey{ 80 Pub: pubKey, 81 Pri: priKey, 82 } 83 err := pkcs.Generate(2048, out) 84 if err != nil { 85 return 86 } 87 orig := "hello" 88 raw, er := pkcs.Encrypt([]byte(orig), pubKey.Bytes()) 89 if er != nil { 90 return 91 } 92 orig2, err := pkcs.Decrypt(raw, priKey.Bytes()) 93 if err != nil { 94 return 95 } 96 t.Log("OK: ", string(orig2)) 97 }