github.com/isyscore/isc-gobase@v1.5.3-0.20231218061332-cbc7451899e9/coder/test/alg_test.go (about) 1 package test 2 3 import ( 4 "crypto/dsa" 5 "github.com/isyscore/isc-gobase/coder" 6 "github.com/isyscore/isc-gobase/file" 7 "testing" 8 ) 9 10 func TestMd5(t *testing.T) { 11 str := "abcdefg" 12 s1 := coder.MD5String(str) 13 t.Logf("%s md5 is %s", str, s1) 14 15 f := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/go.mod" 16 s2, err := coder.MD5File(f) 17 t.Logf("%s md5 is %s (%v)", f, s2, err) 18 } 19 20 func TestSha1(t *testing.T) { 21 str := "abcdefg" 22 s1 := coder.Sha1String(str) 23 t.Logf("%s sha1 is %s", str, s1) 24 25 f := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/go.mod" 26 s2, err := coder.Sha1File(f) 27 t.Logf("%s sha1 is %s (%v)", f, s2, err) 28 } 29 30 func TestHMac(t *testing.T) { 31 key := "isyscore" 32 str := "abcdefg" 33 s1 := coder.HMacMD5String(str, key) 34 t.Logf("%s hmac is %s", str, s1) 35 } 36 37 func TestRC4(t *testing.T) { 38 key := "isyscore" 39 str := "abcdefg" 40 s1 := coder.RC4Encrypt(str, key) 41 t.Logf("%s rc4 is %s", str, s1) 42 43 s2 := coder.RC4Decrypt(s1, key) 44 t.Logf("%s rc4 is %s", s1, s2) 45 } 46 47 func TestDES(t *testing.T) { 48 // CBC 49 key := "isyscore" 50 iv := "12345678" 51 str := "abcdefg" 52 s1 := coder.DESEncryptCBC(str, key, iv) 53 t.Logf("%s des is %s", str, s1) 54 s2 := coder.DESDecryptCBC(s1, key, iv) 55 t.Logf("%s des is %s", s1, s2) 56 57 // ECB 58 ss1 := coder.DESEncryptECB(str, key) 59 t.Logf("%s des is %s", str, ss1) 60 ss2 := coder.DESDecryptECB(ss1, key) 61 t.Logf("%s des is %s", ss1, ss2) 62 } 63 64 func TestRSA(t *testing.T) { 65 privKeyPath := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/test/rsa/private.pem" 66 pubKeyPath := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/test/rsa/public.pem" 67 if !file.FileExists(privKeyPath) { 68 err := coder.RSAGenerateKeyPair(coder.RSA_KEY_SIZE_1024, privKeyPath, pubKeyPath) 69 if err != nil { 70 t.Logf("generate key pair error: %v", err) 71 return 72 } 73 } 74 75 str := "abcdefg" 76 s1, err := coder.RSAEncrypt(str, pubKeyPath) 77 if err != nil { 78 t.Logf("encrypt error: %v", err) 79 return 80 } 81 t.Logf("%s rsa is %s", str, s1) 82 83 s2, err := coder.RSADecrypt(s1, privKeyPath) 84 t.Logf("%s rsa is %s (%v)", s1, s2, err) 85 } 86 87 func TestDSA(t *testing.T) { 88 privKeyPath := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/test/dsa/private.pem" 89 pubKeyPath := "/Users/rarnu/Code/isyscore/opensource/isc-gobase/test/dsa/public.pem" 90 if !file.FileExists(privKeyPath) { 91 err := coder.DSAGenerateKeyPair(dsa.L1024N160, privKeyPath, pubKeyPath) 92 if err != nil { 93 t.Logf("generate key pair error: %v", err) 94 return 95 } 96 } 97 98 str := "abcdefg" 99 r, s, err := coder.DSASign(str, privKeyPath) 100 if err != nil { 101 t.Logf("sign error: %v", err) 102 return 103 } 104 verify, err := coder.DSAVerify(str, pubKeyPath, r, s) 105 if err != nil { 106 t.Logf("verify error: %v", err) 107 return 108 } 109 t.Logf("%s dsa is %v", str, verify) 110 } 111 112 func TestAes(t *testing.T) { 113 // encrypt 114 content := "abcdefg" 115 // ISC-PKI-BRIDGE~1 116 117 // key的长度必须是 16,24,32 118 key := "isyscore12345678" 119 iv := "0102030405060708" 120 s1 := coder.AesEncrypt(content, key, iv) 121 t.Logf("%s aes is %s", content, s1) 122 123 // decrypt 124 s2 := coder.AesDecrypt(s1, key, iv) 125 t.Logf("%s aes is %s", s1, s2) 126 } 127 128 func TestAesJava(t *testing.T) { 129 content := "abcdefg" 130 key := "isyscore12345678" 131 s1 := coder.AesEncryptECB(content, key) 132 t.Logf("%s aes is %s", content, s1) 133 s2 := coder.AesDecryptECB(s1, key) 134 t.Logf("%s aes is %s", s1, s2) 135 } 136 137 func TestAesCBC(t *testing.T) { 138 content := "abcdefg" 139 key := "isyscore12345678" 140 s1 := coder.AesEncryptCBC(content, key) 141 t.Logf("%s aes is %s", content, s1) 142 s2 := coder.AesDecryptCBC(s1, key) 143 t.Logf("%s aes is %s", s1, s2) 144 } 145 146 func Test2333(t *testing.T) { 147 content := "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" 148 key := "ISC-PKI-BRIDGE~1" 149 s1 := coder.AesDecryptECB(content, key) 150 t.Logf(s1) 151 }