This is a creation in Article, where the information may have evolved or changed.
PackageMainImport("CRYPTO/MD5" "Flag" "FMT" "Net/url" "Strings")funcMain () {varTInt64 varKeystring varResurlstringFlag. Int64var (&t,"T",0,"expire timestamp") flag. Stringvar (&key,"Key","","Encrypt key") flag. Stringvar (&resurl,"url","","Resource url") flag. Parse ()ift = =0|| Key = =""|| Resurl = =""{return} expiretime: = Fmt. Sprintf ("%x", t) Resuri, Perr: = URL. Parse (Resurl)ifPerr! =Nil{return} Path: = Resuri.path rawstr: = FMT. Sprintf ("%s%s%s", key, Path, expiretime) md5h: = MD5. New () Md5h.write ([]byte(RAWSTR)) Sign: = FMT. Sprintf ("%x", Md5h.sum (Nil))varNewurlstring ifStrings. Contains (Resurl,"?") {Newurl = Fmt. Sprintf ("%s&sign=%s&t=%s", Resurl, sign, Expiretime)}Else{Newurl = Fmt. Sprintf ("%s?sign=%s&t=%s", Resurl, sign, expiretime)} fmt. Println (Newurl)}