infoService.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package service
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "app.yhyue.com/moapp/jybase/redis"
  5. IC "bp.jydev.jianyu360.cn/BaseService/biCenter/api/common"
  6. "crypto/rand"
  7. "crypto/rsa"
  8. "crypto/x509"
  9. "encoding/base64"
  10. "encoding/pem"
  11. "net/url"
  12. )
  13. type InfoService struct {
  14. }
  15. func (l *InfoService) Myinfo(sid string) map[string]interface{} {
  16. infoMap := map[string]interface{}{}
  17. info_i := redis.Get("session", sid)
  18. if info_i != nil {
  19. info_m, _ := info_i.(map[string]interface{})
  20. infoMap = map[string]interface{}{
  21. "nickName": RsaEncrypt([]byte(common.InterfaceToStr(info_m["s_nickname"]))),
  22. "entRole": RsaEncrypt([]byte(common.InterfaceToStr(info_m["entRole"]))),
  23. "entNicheDis": RsaEncrypt([]byte(common.InterfaceToStr(info_m["entNicheDis"]))),
  24. "positionId": RsaEncrypt([]byte(common.InterfaceToStr(info_m["positionId"]))),
  25. "accountId": RsaEncrypt([]byte(common.InterfaceToStr(info_m["s_nickname"]))),
  26. "entAccountId": RsaEncrypt([]byte(common.InterfaceToStr(info_m["s_nickname"]))),
  27. "entId": RsaEncrypt([]byte(common.InterfaceToStr(info_m["entId"]))),
  28. "entName": RsaEncrypt([]byte(common.InterfaceToStr(info_m["entName"]))),
  29. "entUserName": RsaEncrypt([]byte(common.InterfaceToStr(info_m["entUserName"]))),
  30. "entUserId": RsaEncrypt([]byte(common.InterfaceToStr(info_m["entUserId"]))),
  31. }
  32. }
  33. return infoMap
  34. }
  35. // 加密
  36. func RsaEncrypt(origData []byte) string {
  37. //解密pem格式的公钥
  38. block, _ := pem.Decode([]byte(IC.C.PublicKey))
  39. if block == nil {
  40. return ""
  41. }
  42. // 解析公钥
  43. pubInterface, err := x509.ParsePKIXPublicKey(block.Bytes)
  44. if err != nil {
  45. return ""
  46. }
  47. // 类型断言
  48. pub := pubInterface.(*rsa.PublicKey)
  49. //加密
  50. data, _ := rsa.EncryptPKCS1v15(rand.Reader, pub, origData)
  51. v1 := url.QueryEscape(base64.StdEncoding.EncodeToString(data))
  52. return v1
  53. }