├── Login-api.py ├── README.md ├── TIKTOK-encryption.py └── captcha-TIKTOK.py /Login-api.py: -------------------------------------------------------------------------------- 1 | # Url login api TikTok 2 | 3 | 4 | url= f'https://api2.musical.ly/passport/user/login/?username=&email={email}&mobile=&account=&password={pass}&captcha=&iid=6967491361062930181&channel=googleplay&device_type=SM-G617&os_version=11&version_code=820&app_name=musical_ly&device_platform=android' 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # captcha-TIKTOK 2 | 1- TIKTOK-encryption.py 3 | 4 | - This tool is for TikTok encryption, you can encrypt the username and all the password when TikTok requests it in your program 5 | - You can also encrypt messages in TikTok format in case you need to, in addition to decrypting messages received from TikTok 6 | ----- 7 | 2- captcha-TIKTOK.py 8 | - Skip the captcha for Tik Tok 9 | ----- 10 | 3- Login.py 11 | - The login Api for the Tik Tok application 12 | ----- 13 | - By JoKeR 14 | -------------------------------------------------------------------------------- /TIKTOK-encryption.py: -------------------------------------------------------------------------------- 1 | class TikTok_encryption: 2 | def __init__(self): 3 | self.Lists = [] 4 | self.Starts_encryption() 5 | 6 | def decode(self,msg): 7 | try: 8 | for J in range(0,len(msg),2): 9 | set = 5 ^ ord(bytes.fromhex(msg[J:J+2]).decode());self.Lists.append(chr(set)) 10 | return "".join(self.Lists) 11 | except ValueError:print('[!] Sorry, the message you entered is not encrypted or not affiliated with TikTok , Try again\n====\n');return self.Starts_encryption() 12 | 13 | def Information_encryption(self,key=5): 14 | JN=input('[?] Choose: \n\t-1- Encrypting login_information( username,password)\n\t-2- Encrypt a message\n=== : ') 15 | if (JN=='1'): 16 | 17 | #Username encryption 18 | username = input('Enter username: ') 19 | username= ''.join([hex(int(x ^ key))[2:] for x in username.encode('utf-8')]) 20 | 21 | # Password encryption 22 | password = input('Enter password: ') 23 | password = ''.join([hex(int(x ^ key))[2:] for x in password.encode('utf-8')]) 24 | 25 | print ('\n [%] done successfully:\n-----\nusername:'+username+' Password:'+password+'\n-----') 26 | elif (JN=='2'): 27 | #to encrypt messages 28 | MSG=''.join([hex(int(x ^ key))[2:] for x in input('[?] Enter the message to encrypt it: ').encode('utf-8')]);print('\n [%] done successfully\n---'+MSG+'---') 29 | 30 | def Starts_encryption(self): 31 | QTR=input('1- Information encryption \n2- decryption \n[+] Choose :') 32 | if (QTR=='1'):self.Information_encryption() 33 | elif (QTR=='2'):print(self.decode(input('=====\n[$] Enter the message to decrypt : '))) 34 | TikTok_encryption() 35 | -------------------------------------------------------------------------------- /captcha-TIKTOK.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from user_agent import generate_user_agent 3 | r=requests.session() 4 | 5 | 6 | 7 | 8 | def CPT2(): 9 | global ID 10 | url = 'https://www.tiktok.com/captcha/verify?lang=en&app_name=Tik_Tok_Login&h5_sdk_version=2.16.47&sdk_version=&iid=0&did=6968310577286661637&device_id=6968310577286661637&ch=web_text&aid=1459&os_type=2&tmp=1623878031197&platform=pc&webdriver=false&fp=verify_1ca8bcd3dbf75db5d781c51f812298ce&type=verify&detail=*WMHWI3-0aZ2wxJzbRW7oyoJO9TdOuv47Krv9UeEZ-OcwN-rCM58Ith8RIihy4d70S-eFWxbNrD61b6703bVX2ZJphx6yE*CLO6SK-*Q-U9mbKl1T358egKTDPrZEfmX2nqjinLS0L7Egv*KgPJt6KHvfhyeZ-hJkcBEUGN53aBMkoeO5PS5AKq5oHwg90J5sbd098WDvUStelxTYOEl1nWv9omqrW3K590EqdFpyfn510X*WuCf6kkHd*4XkMbLfJO3RBY68-yTcFzvtKr2HLGNMHKJBylEs33IM0BcPt4cYhyiMOnaeHF-RoENlYbOLWdO3Sta1tbRKGw82kw7cS5ZW8GSs9UKbBKHaGGhyHKgy0xTd-U8mCCfJydDv1Ib3dRPQxZdP5TDp3n-ZNImJKRdjTT18EarKgu-DOTRWPpgMmvSg1k.&subtype=slide&challenge_code=99999&os_name=windows' 11 | 12 | 13 | headers = { 14 | 'Host': 'www.tiktok.com', 15 | 'Cookie': 'tt_webid_v2=6968310577286661637; tt_webid=6968310577286661637; ttwid=1%7CZzvaIhaLGoGxA3j52jOXiFC8BH-0Jhw_1kGxJs2v8yA%7C1623873248%7Cc529d7ef66ec9dcbc99fa8e46a09a6aa1cae24d5ed31714aecdd9c088f7080a3; MONITOR_WEB_ID=verify_1ca8bcd3dbf75db5d781c51f812298ce; passport_csrf_token=4ede4960536ddce60e3edefdcb9db996; passport_csrf_token_default=4ede4960536ddce60e3edefdcb9db996; tt_csrf_token=tCkiiCkUHTUy9Xu3jHnWZmj7; csrf_session_id=1e3e7af6547d4105a370cfc06a7fc3aa; R6kq3TV7=AA5FOBZ6AQAASXqHR-BUtj4hdjyQZr6-Rw1x7wn8dmToaHMNSacHJ883kB9Q|1|0|8c2f3d024a2cf2321a5910272460626dcd07c0ec; s_v_web_id=verify_1ca8bcd3dbf75db5d781c51f812298ce', 16 | 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0', 17 | 'Accept': 'application/json, text/plain, */*', 18 | 'Accept-Language': 'en-US,en;q=0.5', 19 | 'Accept-Encoding': 'gzip, deflate', 20 | 'Content-Type': 'application/json;charset=utf-8', 21 | 'Content-Length': '14893', 22 | 'Origin': 'https://www.tiktok.com', 23 | 'Referer': 'https://www.tiktok.com/login/phone-or-email/email', 24 | 'Te': 'trailers', 25 | 'Connection': 'close'} 26 | 27 | 28 | data = { 29 | "modified_img_width":'340', 30 | "id":ID, 31 | "mode":"slide", 32 | "reply": # the information,} 33 | 34 | go =r.post(url,headers=headers,data=data).text 35 | print(go) 36 | 37 | def CPT1(): 38 | global ID 39 | url = 'https://www.tiktok.com/captcha/get?lang=en&app_name=Tik_Tok_Login&h5_sdk_version=2.16.44&sdk_version=&iid=0&did=6968316455419430405&device_id=6968316455419430405&ch=web_text&aid=1459&os_type=2&tmp=1623085228541&platform=pc&webdriver=false&fp=verify_5edf3ce125d9831f066e1b48d03591b9&type=verify&detail=H6FaCLwQpWFT1rcXlVL7qCdcks9cZQiJbXIu9JyxXaPTv9A6E3ASXVWxc3PQoADd-t7oqXy*t7JRo2lyqQeVUIuJ1UYFPwFx1I73c*pxLAUr*ZnCF8dmfFa9nMhOkXAD9dd2jRUIB2iU5vzrI4XLYXYlX69DAHz8pO6H5OGdz0m5aRN6ZvP9PMNfp6KRPMMlDjjpcgwYRoTM3AdsAXL3vdIres8fJHhA-ZUCH*2oIDrQ0M0M*phufgl7ydD23oDk5pMKNFew70ljZyx*DmiHKxJhmdFrh-jD77pLW0FuuEVXz*pjdhXbmq5IEfODv05SkosVfDLFNkekIyNASk9buNuPX0DPms*E7zhPkXhrewIXWR77rPDNtmFfp1OiN*zZcuTJw-tw2USE1jwawrXxS*iP9p-u3iwynNhUdqibhiAqEFIZNqY.&subtype=slide&challenge_code=5&os_name=windows' 40 | 41 | headers = { 42 | 'accept': 'application/json, text/plain, */*', 43 | 'accept-language': 'en-US,en;q=0.9', 44 | 'cookie': 'tt_webid_v2=6968316455419430405; tt_webid=6968316455419430405; passport_csrf_token=349596cbe84fd0ffe5dbd9340394dca6; passport_csrf_token_default=349596cbe84fd0ffe5dbd9340394dca6; tt_csrf_token=bi9kcuHLorLdotbc50QztjLU; csrf_session_id=618c24fd980d417e89ffcb3a163564da; ttwid=1%7ChE9PNUw9TRoYHFHf1SUq025zx476Rovxl5rjGRoVIM4%7C1623084256%7C775a1c8497980109c5a2feb50db5f70d669b48c3b9e96c397f8be43c65b4d980; R6kq3TV7=AL5NXOd5AQAALCBhcYQu-KGpnWFsfAMQRFH0uXmuRQNliBisqYAeKamJ73y1|1|0|ff08b0564400d83cb3a77f12aa0d9f783e4ff3fb; s_v_web_id=verify_5edf3ce125d9831f066e1b48d03591b9; MONITOR_WEB_ID=verify_5edf3ce125d9831f066e1b48d03591b9', 45 | 'referer': 'https://www.tiktok.com/login/phone-or-email/email', 46 | 'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"', 47 | 'sec-ch-ua-mobile': '?0', 48 | 'sec-fetch-dest': 'empty', 49 | 'sec-fetch-mode': 'cors', 50 | 'sec-fetch-site': 'same-origin', 51 | 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'} 52 | 53 | 54 | ok = r.get(url,headers=headers) 55 | print(ok.text) 56 | All = ok.json()['data'] 57 | ID = ok.json()['data']['id'] 58 | print(ID) 59 | CPT2() 60 | 61 | CPT1() 62 | --------------------------------------------------------------------------------