package yu_rand import ( yu_const "gogs.qqck.cn/s/tools/const" ) // Mac // // @Description: 随机生成小写 mac (53:31:32:41:c3:dd) func Mac() string { j_mac := make([]byte, 17) Rand.ReadEx(j_mac, yu_const.HexLowerBytes) j_mac[2], j_mac[5], j_mac[8], j_mac[11], j_mac[14] = ':', ':', ':', ':', ':' return string(j_mac) } // MAC // // @Description: 随机生成大写 mac (BF:49:00:F6:DB:8E) func MAC() string { j_mac := make([]byte, 17) Rand.ReadEx(j_mac, yu_const.HexUpperBytes) j_mac[2], j_mac[5], j_mac[8], j_mac[11], j_mac[14] = ':', ':', ':', ':', ':' return string(j_mac) } // AndroidId // // @Description: 随机生成小写 AndroidId (20f6e8a69f30aebb) func AndroidId() string { j_mac := make([]byte, 16) Rand.ReadEx(j_mac, yu_const.HexLowerBytes) return string(j_mac) } // AndroidID // // @Description: 随机生成大写 AndroidId (5D2D187C36CD84E4) func AndroidID() string { j_mac := make([]byte, 16) Rand.ReadEx(j_mac, yu_const.HexUpperBytes) return string(j_mac) } // AndroidId // // @Description: 随机生成 Imei func Imei() string { j_sum := 0 // the control j_sum of digits j_final := make([]byte, 15) for j_i := 0; j_i < 14; j_i++ { // generating all the base digits j_toAdd := Intn(10) j_final[j_i] = yu_const.HexLower[j_toAdd] if (j_i+1)%2 == 0 { // special proc for every 2nd one j_toAdd *= 2 if j_toAdd >= 10 { j_toAdd = (j_toAdd % 10) + 1 } } j_sum += j_toAdd // and even add them here! } j_final[14] = yu_const.HexLower[(j_sum*9)%10] // calculating the control digit return string(j_final) } const pass_ex = "`!@#$%^&()=+[{]}|;:',./?" const pass_ex_len = int32(len(pass_ex)) // Pass // // @Description: 根据规则生成指定长度的密码 // a|A=0-9 b|B=a-z c|C=A-Z d|D=a-Z // e|E=0-9-a-z f|F=0-9-A-Z g|G=0-9-a-Z // h|H=【`!@#$%^&()=+[{]}|;:',./?】 // i|I=【`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?】 // j|J=0-9-a-Z-【`!@#$%^&()=+[{]}|;:',./?】 // k|K=0-9-a-Z-【`~!@#$%^&*()-_=+[{]}\|;:'",<.>/?】 // // 指令前面可带长度指令,长度指令应在 1-9 范围内,不带长度指令则默认为 1,如: // [1]a 表示 1 个随机 a 指令; // [3]a 表示 3 个随机 a 指令; // [2-5]a 表示随机 2-5 个随机 a 指令 // // "hh" 表示插入 hh 字符 // // 示例:aAbB[2]C[1-3]H 或 aAbB [2]C [1-3]H 可能会生成: // 16akYU@ // 27fdAS@! // 63isSY%&~ // // 示例:a"nihao"AbB[2]C[1-3]H 或 "nihao"aAbB [2]C [1-3]H 可能会生成: // 1nihao6akYU@ // nihao27fdAS@! // 6nihao3isSY%&~ func Pass(rule string) string { j_buf := make([]byte, 0, len(rule)*9) j_len_min, j_len_max := int32(1), int32(1) j_lens, j_len_, j_lene, j_append := false, false, false, false for _, j_ascii := range rule { if j_ascii == '"' { j_append = !j_append continue } if j_append { j_buf = append(j_buf, byte(j_ascii)) continue } switch j_ascii { case '[': j_lens = true case '1': // 默认就是 1 case '2': if j_len_ { j_len_max = 2 } else { j_len_min = 2 } case '3': if j_len_ { j_len_max = 3 } else { j_len_min = 3 } case '4': if j_len_ { j_len_max = 4 } else { j_len_min = 4 } case '5': if j_len_ { j_len_max = 5 } else { j_len_min = 5 } case '6': if j_len_ { j_len_max = 6 } else { j_len_min = 6 } case '7': if j_len_ { j_len_max = 7 } else { j_len_min = 7 } case '8': if j_len_ { j_len_max = 8 } else { j_len_min = 8 } case '9': if j_len_ { j_len_max = 9 } else { j_len_min = 9 } case '-': j_len_ = true case ']': j_lene = true case 'a', 'A', 'b', 'B', 'c', 'C', 'd', 'D', 'e', 'E', 'f', 'F', 'g', 'G', 'h', 'H', 'i', 'I', 'j', 'J', 'k', 'K': j_len := 1 if j_lens && j_lene { if j_len_ && j_len_min != j_len_max { if j_len_min < j_len_max { j_len = int(Int31MinMax(j_len_min, j_len_max)) } else { j_len = int(Int31MinMax(j_len_max, j_len_min)) } } else { j_len = int(j_len_min) } } j_len_min, j_len_max = 1, 1 // 复位 j_lens, j_len_, j_lene = false, false, false // 复位 switch j_ascii { case 'a', 'A': for ; j_len > 0; j_len-- { j_buf = append(j_buf, byte(Int31n(10))+'0') } case 'b', 'B': for ; j_len > 0; j_len-- { j_buf = append(j_buf, byte(Int31n(26))+'a') } case 'c', 'C': for ; j_len > 0; j_len-- { j_buf = append(j_buf, byte(Int31n(26))+'A') } case 'd', 'D': for ; j_len > 0; j_len-- { if Int31n(2) == 0 { j_buf = append(j_buf, byte(Int31n(26))+'a') } else { j_buf = append(j_buf, byte(Int31n(26))+'A') } } case 'e', 'E': for ; j_len > 0; j_len-- { if Int31n(2) == 0 { j_buf = append(j_buf, byte(Int31n(10))+'0') } else { j_buf = append(j_buf, byte(Int31n(26))+'a') } } case 'f', 'F': for ; j_len > 0; j_len-- { if Int31n(2) == 0 { j_buf = append(j_buf, byte(Int31n(10))+'0') } else { j_buf = append(j_buf, byte(Int31n(26))+'A') } } case 'g', 'G': for ; j_len > 0; j_len-- { switch Int31n(3) { case 0: j_buf = append(j_buf, byte(Int31n(10))+'0') case 1: j_buf = append(j_buf, byte(Int31n(26))+'a') default: j_buf = append(j_buf, byte(Int31n(26))+'A') } } case 'h', 'H': for ; j_len > 0; j_len-- { j_buf = append(j_buf, pass_ex[Int31n(pass_ex_len)]) } case 'i', 'I': for ; j_len > 0; j_len-- { j_buf = append(j_buf, str_other[Int31n(str_other_len)]) } case 'j', 'J': for ; j_len > 0; j_len-- { switch Int31n(4) { case 0: j_buf = append(j_buf, byte(Int31n(10))+'0') case 1: j_buf = append(j_buf, byte(Int31n(26))+'a') case 2: j_buf = append(j_buf, byte(Int31n(26))+'A') default: j_buf = append(j_buf, pass_ex[Int31n(pass_ex_len)]) } } case 'k', 'K': for ; j_len > 0; j_len-- { j_buf = append(j_buf, byte(Int31n(94))+33) // 33 - 126 } } } } return string(j_buf) } // 摘自:https://github.com/KHwang9883/MobileModels/ var m_devices = [][]string{ {"OnePlus", "AC2001"}, // Nord 印度版 {"OnePlus", "AC2003"}, // Nord 欧洲版/国际版 {"OnePlus", "BE2011"}, // Nord N100 北美版 {"OnePlus", "BE2012"}, // Nord N100 T-Mobile 版 {"OnePlus", "BE2013"}, // Nord N100 国际版 {"OnePlus", "BE2015"}, // Nord N100 Metro 版 {"OnePlus", "BE2025"}, // Nord N10 Metro 版 {"OnePlus", "BE2026"}, // Nord N10 北美版 {"OnePlus", "BE2028"}, // Nord N10 T-Mobile 版 {"OnePlus", "BE2029"}, // Nord N10 欧洲版/国际版 {"OnePlus", "CPH2381"}, // Nord CE 2 Lite 印度版 {"OnePlus", "CPH2389"}, // Nord N300 {"OnePlus", "CPH2399"}, // Nord 2T 国际版 {"OnePlus", "CPH2401"}, // Nord 2T 印度版 {"OnePlus", "CPH2409"}, // Nord CE 2 Lite 欧洲版/国际版 {"OnePlus", "CPH2411"}, // 10R Endurance 印度版 {"OnePlus", "CPH2413"}, // 10T 印度版 {"OnePlus", "CPH2415"}, // 10T 欧洲版/国际版 {"OnePlus", "CPH2417"}, // 10T 北美版 {"OnePlus", "CPH2419"}, // 10T T-Mobile 版 {"OnePlus", "CPH2423"}, // 10R 印度版 {"OnePlus", "CPH2447"}, // 11 印度版 {"OnePlus", "CPH2449"}, // 11 欧洲版/国际版 {"OnePlus", "CPH2451"}, // 11 北美版 {"OnePlus", "CPH2465"}, // Nord CE 3 Lite 国际版 {"OnePlus", "CPH2467"}, // Nord CE 3 Lite 印度版 {"OnePlus", "CPH2469"}, // Nord 20 SE {"OnePlus", "CPH2487"}, // 11R 印度版 {"OnePlus", "CPH2491"}, // Nord 3 印度版 {"OnePlus", "CPH2493"}, // Nord 3 欧洲版 {"OnePlus", "CPH2513"}, // Nord N30 北美版 {"OnePlus", "CPH2515"}, // Nord N30 T-Mobile 版 {"OnePlus", "CPH2569"}, // Nord CE 3 印度版 {"OnePlus", "CPH2573"}, // 12 印度版 {"OnePlus", "CPH2581"}, // 12 欧洲版/国际版 {"OnePlus", "CPH2583"}, // 12 北美版 {"OnePlus", "CPH2585"}, // 12R 印度版 {"OnePlus", "CPH2605"}, // Nord N30 SE 欧洲版 {"OnePlus", "CPH2609"}, // 12R 欧洲版/国际版 {"OnePlus", "CPH2611"}, // 12R 北美版 {"OnePlus", "DE2117"}, // Nord N200 北美版 {"OnePlus", "DE2118"}, // Nord N200 T-Mobile 版 {"OnePlus", "DN2101"}, // Nord 2 印度版 {"OnePlus", "DN2103"}, // Nord 2 欧洲版 {"OnePlus", "EB2101"}, // Nord CE 印度版 {"OnePlus", "EB2103"}, // Nord CE 欧洲版/国际版 {"OnePlus", "GM1900"}, // 7 全网通版 {"OnePlus", "GM1901"}, // 7 印度版 {"OnePlus", "GM1903"}, // 7 欧洲版 {"OnePlus", "GM1905"}, // 7 北美版/国际版 {"OnePlus", "GM1910"}, // 7 Pro 全网通版 {"OnePlus", "GM1911"}, // 7 Pro 印度版 {"OnePlus", "GM1913"}, // 7 Pro 欧洲版 {"OnePlus", "GM1915"}, // 7 Pro 北美版/国际版 {"OnePlus", "GM1917"}, // 7 Pro T-Mobile 版 {"OnePlus", "GM1920"}, // 7 Pro 5G 欧洲版 {"OnePlus", "GM1925"}, // 7 Pro 5G Sprint 版 {"OnePlus", "GN2200"}, // Nord N20 {"OnePlus", "CPH2459"}, // Nord N20 {"OnePlus", "HD1900"}, // 7T 全网通版 {"OnePlus", "HD1901"}, // 7T 印度版 {"OnePlus", "HD1903"}, // 7T 欧洲版 {"OnePlus", "HD1905"}, // 7T 北美版/国际版 {"OnePlus", "HD1907"}, // 7T T-Mobile 版 {"OnePlus", "HD1910"}, // 7T Pro 全网通版 {"OnePlus", "HD1911"}, // 7T Pro 印度版 {"OnePlus", "HD1913"}, // 7T Pro 欧洲版/国际版 {"OnePlus", "HD1925"}, // 7T Pro 5G T-Mobile 版 / OnePlus Concept One {"OnePlus", "IN2010"}, // 8 全网通版 {"OnePlus", "IN2011"}, // 8 印度版 {"OnePlus", "IN2013"}, // 8 欧洲版 {"OnePlus", "IN2015"}, // 8 北美版/国际版 {"OnePlus", "IN2017"}, // 8 T-Mobile 版 {"OnePlus", "IN2019"}, // 8 Visible 版/Verizon 版 {"OnePlus", "IN2020"}, // 8 Pro 全网通版 {"OnePlus", "IN2021"}, // 8 Pro 印度版 {"OnePlus", "IN2023"}, // 8 Pro 欧洲版 {"OnePlus", "IN2025"}, // 8 Pro 北美版/国际版 {"OnePlus", "IV2201"}, // Nord CE 2 印度版 {"OnePlus", "KB2000"}, // 8T 全网通版 {"OnePlus", "KB2001"}, // 8T 印度版 {"OnePlus", "KB2003"}, // 8T 欧洲版 {"OnePlus", "KB2005"}, // 8T 北美版/国际版 {"OnePlus", "KB2007"}, // 8T+ T-Mobile 版 {"OnePlus", "LE2100"}, // 9R 全网通版 {"OnePlus", "LE2101"}, // 9R 印度版 {"OnePlus", "LE2110"}, // 9 全网通版 {"OnePlus", "LE2111"}, // 9 印度版 {"OnePlus", "LE2113"}, // 9 欧洲版 {"OnePlus", "LE2115"}, // 9 北美版/国际版 {"OnePlus", "LE2117"}, // 9 T-Mobile 版 {"OnePlus", "LE2119"}, // 9 Verzion 版 {"OnePlus", "LE2120"}, // 9 Pro 全网通版 {"OnePlus", "LE2121"}, // 9 Pro 印度版 {"OnePlus", "LE2123"}, // 9 Pro 欧洲版 {"OnePlus", "LE2125"}, // 9 Pro 北美版/国际版 {"OnePlus", "LE2127"}, // 9 Pro T-Mobile 版 {"OnePlus", "MT2110"}, // 9RT 全网通版 {"OnePlus", "MT2111"}, // 9RT 印度版 {"OnePlus", "NE2210"}, // 10 Pro 全网通版 {"OnePlus", "NE2211"}, // 10 Pro 印度版 {"OnePlus", "NE2213"}, // 10 Pro 欧洲版/国际版 {"OnePlus", "NE2215"}, // 10 Pro 北美版 {"OnePlus", "NE2217"}, // 10 Pro T-Mobile 版 {"OnePlus", "PGKM10"}, // Ace 全网通版 {"OnePlus", "PGP110"}, // Ace Pro 全网通版 {"OnePlus", "PGZ110"}, // Ace 竞速版 全网通版 {"OnePlus", "PHB110"}, // 11 全网通版 {"OnePlus", "PHK110"}, // Ace 2 全网通版 {"OnePlus", "PHP110"}, // Ace 2V 全网通版 {"OnePlus", "PJA110"}, // Ace 2 Pro 全网通版 {"OnePlus", "PJD110"}, // 12 全网通版 {"OnePlus", "PJE110"}, // Ace 3 全网通版 {"OnePlus", "PJF110"}, // Ace 3V 全网通版 {"Samsung", "PJF110"}, // Ace 3V 全网通版 {"Samsung", "SM-G7810"}, // Galaxy S20 FE 5G {"Samsung", "SM-G9730"}, // Galaxy S10 全网通版 {"Samsung", "SM-G9738"}, // Galaxy S10 4G+ {"Samsung", "SM-G9750"}, // Galaxy S10+ 全网通版 {"Samsung", "SM-G9758"}, // Galaxy S10+ 4G+ {"Samsung", "SM-G9810"}, // Galaxy S20 5G {"Samsung", "SM-G9860"}, // Galaxy S20+ 5G {"Samsung", "SM-G9880"}, // Galaxy S20 Ultra 5G {"Samsung", "SM-G9900"}, // Galaxy S21 FE 5G {"Samsung", "SM-G9910"}, // Galaxy S21 5G {"Samsung", "SM-G9960"}, // Galaxy S21+ 5G {"Samsung", "SM-G9980"}, // Galaxy S21 Ultra 5G {"Samsung", "SM-S7110"}, // Galaxy S23 FE {"Samsung", "SM-S9010"}, // Galaxy S22 {"Samsung", "SM-S9060"}, // Galaxy S22+ {"Samsung", "SM-S9080"}, // Galaxy S22 Ultra {"Samsung", "SM-S9110"}, // Galaxy S23 {"Samsung", "SM-S9160"}, // Galaxy S23+ {"Samsung", "SM-S9180"}, // Galaxy S23 Ultra {"Samsung", "SM-S9210"}, // Galaxy S24 {"Samsung", "SM-S9260"}, // Galaxy S24+ {"Samsung", "SM-S9280"}, // Galaxy S24 Ultra {"Samsung", "SM-N9700"}, // Galaxy Note10 {"Samsung", "SM-N9760"}, // Galaxy Note10+ 5G {"Samsung", "SM-N9810"}, // Galaxy Note20 5G {"Samsung", "SM-N9860"}, // Galaxy Note20 Ultra 5G {"Xiaomi", "2107113SG"}, // Xiaomi 11T Pro 国际版 {"Xiaomi", "2107113SI"}, // Xiaomi 11T Pro 印度版 {"Xiaomi", "2107113SR"}, // Xiaomi 11T Pro 日本版 {"Xiaomi", "2107119DC"}, // Xiaomi 11 青春活力版 国行版 {"Xiaomi", "21081111RG"}, // Xiaomi 11T 国际版 {"Xiaomi", "21091116I"}, // Xiaomi 11i 印度版 {"Xiaomi", "21091116UI"}, // Xiaomi 11i HyperCharge 印度版 {"Xiaomi", "2109119DG"}, // Xiaomi 11 Lite 5G NE 国际版 {"Xiaomi", "2109119DI"}, // Xiaomi 11 Lite NE 5G 印度版 {"Xiaomi", "2112123AC"}, // Xiaomi 12X 国行版 {"Xiaomi", "2112123AG"}, // Xiaomi 12X 国际版 {"Xiaomi", "2201122C"}, // Xiaomi 12 Pro 国行版 {"Xiaomi", "2201122G"}, // Xiaomi 12 Pro 国际版 {"Xiaomi", "2201123C"}, // Xiaomi 12 国行版 {"Xiaomi", "2201123G"}, // Xiaomi 12 国际版 {"Xiaomi", "2203121C"}, // Xiaomi 12S Ultra {"Xiaomi", "2203129G"}, // Xiaomi 12 Lite 国际版 {"Xiaomi", "2203129I"}, // Xiaomi 12 Lite 印度版 {"Xiaomi", "2206122SC"}, // Xiaomi 12S Pro {"Xiaomi", "2206123SC"}, // Xiaomi 12S {"Xiaomi", "22071212AG"}, // Xiaomi 12T 国际版 {"Xiaomi", "2207122MC"}, // Xiaomi 12 Pro 天玑版 {"Xiaomi", "22081212R"}, // Xiaomi 12T Pro 日本版 (SIM Free) {"Xiaomi", "22200414R"}, // Xiaomi 12T Pro 日本版 (SIM Free) {"Xiaomi", "22081212UG"}, // Xiaomi 12T Pro 国际版 {"Xiaomi", "2210129SG"}, // Xiaomi 13 Lite 国际版 {"Xiaomi", "2210132C"}, // Xiaomi 13 Pro 国行版 {"Xiaomi", "2210132G"}, // Xiaomi 13 Pro 国际版 {"Xiaomi", "2211133C"}, // Xiaomi 13 国行版 {"Xiaomi", "2211133G"}, // Xiaomi 13 国际版 {"Xiaomi", "2304FPN6DC"}, // Xiaomi 13 Ultra 国行版 {"Xiaomi", "2304FPN6DG"}, // Xiaomi 13 Ultra 国际版 {"Xiaomi", "2306EPN60G"}, // Xiaomi 13T 国际版 {"Xiaomi", "2306EPN60R"}, // Xiaomi 13T 日本版 (SIM Free) {"Xiaomi", "23078PND5G"}, // Xiaomi 13T Pro 国际版 {"Xiaomi", "23088PND5R"}, // Xiaomi 13T Pro 日本版 (SIM Free) {"Xiaomi", "23116PN5BC"}, // Xiaomi 14 Pro / Xiaomi 14 Pro 钛金属版 {"Xiaomi", "2311BPN23C"}, // Xiaomi 14 Pro 钛金属版 (卫星通讯) {"Xiaomi", "23127PN0CC"}, // Xiaomi 14 国行版 {"Xiaomi", "23127PN0CG"}, // Xiaomi 14 国际版 {"Xiaomi", "24030PN60G"}, // Xiaomi 14 Ultra 国际版 {"Xiaomi", "24031PN0DC"}, // Xiaomi 14 Ultra 国行版 {"Xiaomi", "A201XM"}, // Xiaomi 12T Pro 日本版 (SoftBank) {"Xiaomi", "A301XM"}, // Xiaomi 13T Pro 日本版 (SoftBank) {"Xiaomi", "M2001J1E"}, // 小米 10 Pro 国行版 {"Xiaomi", "M2001J1C"}, // 小米 10 Pro 国行版 {"Xiaomi", "M2001J1G"}, // 小米 10 Pro 国际版 {"Xiaomi", "M2001J2E"}, // 小米 10 国行版 {"Xiaomi", "M2001J2C"}, // 小米 10 国行版 {"Xiaomi", "M2001J2G"}, // 小米 10 国际版 {"Xiaomi", "M2001J2I"}, // 小米 10 印度版 {"Xiaomi", "M2002J9E"}, // 小米 10 青春版 国行版 {"Xiaomi", "M2002J9G"}, // 小米 10 Lite 国际版 {"Xiaomi", "M2002J9R"}, // 小米 10 Lite 日本版 (KDDI) {"Xiaomi", "XIG01"}, // 小米 10 Lite 日本版 (KDDI) {"Xiaomi", "M2002J9S"}, // 小米 10 Lite 韩国版 {"Xiaomi", "M2007J17G"}, // 小米 10T Lite 国际版 {"Xiaomi", "M2007J17I"}, // 小米 10i 印度版 {"Xiaomi", "M2007J1SC"}, // 小米 10 至尊纪念版 {"Xiaomi", "M2007J3SG"}, // 小米 10T Pro 国际版 {"Xiaomi", "M2007J3SI"}, // 小米 10T Pro 印度版 {"Xiaomi", "M2007J3SP"}, // 小米 10T 印度版 {"Xiaomi", "M2007J3SY"}, // 小米 10T 国际版 {"Xiaomi", "M2011K2C"}, // 小米 11 国行版 {"Xiaomi", "M2011K2G"}, // 小米 11 国际版 {"Xiaomi", "M2012K11AI"}, // 小米 11X 印度版 {"Xiaomi", "M2012K11G"}, // 小米 11i 国际版 {"Xiaomi", "M2012K11I"}, // 小米 11X Pro 印度版 {"Xiaomi", "M2101K9AG"}, // 小米 11 Lite 4G 国际版 {"Xiaomi", "M2101K9AI"}, // 小米 11 Lite 4G 印度版 {"Xiaomi", "M2101K9C"}, // 小米 11 青春版 国行版 {"Xiaomi", "M2101K9G"}, // 小米 11 Lite 5G 国际版 {"Xiaomi", "M2101K9R"}, // 小米 11 Lite 5G 日本版 {"Xiaomi", "M2102J2SC"}, // 小米 10S {"Xiaomi", "M2102K1AC"}, // 小米 11 Pro {"Xiaomi", "M2102K1C"}, // 小米 11 Ultra 国行版 {"Xiaomi", "M2102K1G"}, // 小米 11 Ultra 国际版 {"Xiaomi", "XIG04"}, // Xiaomi 13T 日本版 (KDDI) } type Device struct { Brand string Model string } func AndroidDevice() Device { j_item := m_devices[Intn(len(m_devices))] return Device{ j_item[0], j_item[1], } }