You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
2.0KB

  1. package main
  2. import (
  3. "testing"
  4. )
  5. func SetupConfig() {
  6. APIConfig = WechatAPIConfig{
  7. "skdq8vklaurfqemfszuif",
  8. "cmtWK2teRnLOXyO5dw7lJkETv9jCeNAqYyguEu5D8gG",
  9. "wx876e233fde456b7b",
  10. "4a91aa328569b10a9fb97adeb8b0af58"}
  11. }
  12. func TestEncodingMesage(t *testing.T) {
  13. SetupConfig()
  14. //明文:
  15. var msg = `<xml><ToUserName><![CDATA[gh_f09231355c68]]></ToUserName>
  16. <FromUserName><![CDATA[oUN420bxqFqlx0ZQHciUOesZO3PE]]></FromUserName>
  17. <CreateTime>1492972518</CreateTime>
  18. <MsgType><![CDATA[event]]></MsgType>
  19. <Event><![CDATA[CLICK]]></Event>
  20. <EventKey><![CDATA[V1001_TODAY_MUSIC]]></EventKey>
  21. </xml>`
  22. e := Encode(msg)
  23. t.Log(e)
  24. d := Decode(e)
  25. if d != msg {
  26. t.Error("encode a message then decode it failed")
  27. }
  28. //预先加密和的密文,和msg相同
  29. var encrypted1 = "P2DoRtilYwJ1aM+VW1sGs6p11Rhcd/TrFYtvsw53SUVw2Knh27hF5IZUBxRXbz+k87zy983ec5aOwgS+WxYoejmGubaqiYy2yfCBNyGRlWfe+iWc2TnvPIEAJebSWuNOJ7FoITeMndr4tW391XxDdMom8I/VsqKnsZZAangUsxmA1ZEnP/d4Lx8/xt3qJKrJMa4Q8s9VsOOvzLIGhL1IN5bHaXN+CwgBTAUCrHD8AneiX5MLSv/74qozg+jKBSUebZrjRYuTymQ3TBh3pQXyRBQTZNrCAe1tlcNli9e5MSUMsHFIzGw/kiu93/5VkxCYRLgRDQKl9oam4+Rpxywir7EiT7I4X343l9ogcMLWX16evkLlQHoqBhLl6ZcfW7Nmq8/Ghy8jbuwqkR/0jLJ/avtjzgJOwaxdBUz4nYZ452rLJekxIvsmV6PZgCXRrKHzmpZX+i6hIRIWiIaDeMOEsw=="
  30. //不同的密文: (相同的明文)
  31. var encrypted2 = "yKlFGV+ukblgxH7PvN6jgCGGC8TkC6J9C0F1XnvcLQKS9R5RSJYib4EZZftpyfc5x6WDfM7++vunEawNz54Gu4746byRaqQyW9G6zX7o6ro5YDGbNuYpBflwi6bNM6hncIKYb8oH3VFHEvSsUb1eg4fNwdebeEhpixDlPPbwAUXOZ7FcN6UWkSiZhZMKZNSv42+u9GK/nFEv1Fa8nW4NWNLXU4V2OFM+5d0lAGb0I9pD69IsuUFeBuJ8ZOGPB4EVKI2xODpicJkYP3ym5ePpz3GC4EFk5JwIiPw+EYbqKH0ADNhrsRHtAzLh6rjyNWCVkij68XmWBJ8I8l38a/zycFZ4uvef7ceEByvhKIVM7p/eO55NOl/F6W6hmEQwOgw/7tPjrErA4aPuijPAjgtVw0ngb32O9/XRSe91h802oyhWwnoQgTF7tZqKLpJLxM9g+BiUar/13j0eivql0B6gWg=="
  32. f := Decode(encrypted1)
  33. g := Decode(encrypted2)
  34. //t.Log(f)
  35. //t.Log(g)
  36. if f != g {
  37. t.Error("decoding two different encryption to same message failed")
  38. }
  39. if f != msg {
  40. t.Error("Decoding itself failed")
  41. }
  42. }