コード例 #1
0
def sendFile():
    friend_certificate = certificate_list[comboxlist_friend.get()]
    friend_address = tuple(friend_certificate["address"])
    file_path = filedialog.askopenfilename()
    file = open(file_path, 'rb')
    stext = file.read()
    hexstr = binascii.b2a_hex(stext)
    filebyte = cryptocommon.hexstr_to_bytelist(hexstr)
    hashbytelist = md5hash.hash(filebyte)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    hashhexstr = cipher_rsa.str_encryption(hashhexstr, pvk[0], pvk[1])  # signature
    file_name = file_path.split("/")[-1]

    stream = {"type": "file", "name": file_name, "hash": hashhexstr, "encoding": chardet.detect(stext)["encoding"],
              "sender": euser.get()}
    client_msg.sendto(json.dumps(stream).encode(), friend_address)
    time.sleep(0.8)
    stext += b"__end__"
    epoch = len(stext) // buffer
    res = int(len(stext) - epoch * buffer)
    print("sending file::::")
    t = 0
    for i in range(epoch):
        t = i
        time.sleep(0.1)
        client_msg.sendto(stext[i * buffer: (i + 1) * buffer], friend_address)
    if res != 0:
        client_msg.sendto(stext[t * buffer:t * buffer + res], friend_address)
コード例 #2
0
def recvFile(file_name: str, hash_code: str, encoding: str, fromer: str):
    mkdir(euser.get())
    btext = b''
    while True:
        data, addr = client_msg.recvfrom(buffer)
        btext += data
        if btext[-7:] == b"__end__":
            break
    btext = btext[:-7]

    hexstr = binascii.b2a_hex(btext)
    filebyte = cryptocommon.hexstr_to_bytelist(hexstr)
    hashbytelist = md5hash.hash(filebyte)
    while fromer not in certificate_list.keys():  # wait for certificate
        askCert(fromer)
        time.sleep(0.2)
    friend_certificate = certificate_list[fromer]
    friend_pbk = friend_certificate["pbk"]
    hash_decode = cipher_rsa.numlist_to_decryption_str(hash_code, friend_pbk[0], friend_pbk[1])
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    if hashhexstr == hash_decode:
        file = open(euser.get() + "\\" + file_name, 'w')
        file.write((btext).decode('gb18030'))
        file.close()
        text.insert(tkinter.INSERT, "you have received a file from "+fromer+"\n")
    else:
        text.insert(tkinter.INSERT, "received some broken files.\n")
コード例 #3
0
def connectServer():
    global ck
    ipStr = eip.get()
    portStr = eport.get()
    userStr = euser.get()
    pwd = cryptocommon.bytelist_to_hexstr(md5hash.hash(cryptocommon.asciistr_to_bytelist(epwd.get())))
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    try:
        client.connect((ipStr, int(portStr)))  #
        client.send((userStr + pwd).encode())
        data = client.recv(1024).decode()
        print(data)
        if data == "error":
            messagebox.showerror("ERROR", "Wrong account or password, please try again.")
            raise Exception
    except Exception:
        return
    ck = client
    t1 = threading.Thread(target=tcp_msg)
    t1.start()
    t2 = threading.Thread(target=udp_msg)
    t2.start()
    t3 = threading.Thread(target=resend_certificate)
    t3.start()
    chatRoom()
コード例 #4
0
def main():
    message = "FF00CA9634"
    msgbytelist = cryptocommon.hexstr_to_bytelist(message)
    hashbytelist = md5hash.hash(msgbytelist, printdebug=True)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    print('Message string (hex): {}'.format(message))
    print("Message bytelist: {}".format(msgbytelist))
    print("Hash bytelist: {}".format(hashbytelist))
    print("MD5 hash (hex): {}".format(hashhexstr))
    print("")
    print("-" * 100)
    print("")

    message = "the quick brown fox"
    msgbytelist = cryptocommon.asciistr_to_bytelist(message)
    hashbytelist = sha256hash.hash(msgbytelist, printdebug=True)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    print('Message string: "{}"'.format(message))
    print("Message bytelist: {}".format(msgbytelist))
    print("Hash bytelist: {}".format(hashbytelist))
    print("SHA-256 hash (hex): {}".format(hashhexstr))
コード例 #5
0
def main():
    message = "FF00CA9634"
    msgbytelist = cryptocommon.hexstr_to_bytelist(message)
    hashbytelist = md5hash.hash(msgbytelist, printdebug=True)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    print(f"Message string (hex): {message}")
    print(f"Message bytelist: {msgbytelist}")
    print(f"Hash bytelist: {hashbytelist}")
    print(f"MD5 hash (hex): {hashhexstr}")
    print()
    print("-" * 100)
    print()

    message = "the quick brown fox"
    msgbytelist = cryptocommon.asciistr_to_bytelist(message)
    hashbytelist = sha256hash.hash(msgbytelist, printdebug=True)
    hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
    print(f'Message string: "{message}"')
    print(f"Message bytelist: {msgbytelist}")
    print(f"Hash bytelist: {hashbytelist}")
    print(f"SHA-256 hash (hex): {hashhexstr}")
コード例 #6
0
def main():
	message = "FF00CA9634"
	msgbytelist = cryptocommon.hexstr_to_bytelist(message)
	hashbytelist = md5hash.hash(msgbytelist, printdebug=True)
	hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
	print('Message string (hex): {}'.format(message))
	print("Message bytelist: {}".format(msgbytelist))
	print("Hash bytelist: {}".format(hashbytelist))
	print("MD5 hash (hex): {}".format(hashhexstr))
	print("")
	print("-" * 100)
	print("")
	
	message = "the quick brown fox"
	msgbytelist = cryptocommon.asciistr_to_bytelist(message)
	hashbytelist = sha256hash.hash(msgbytelist, printdebug=True)
	hashhexstr = cryptocommon.bytelist_to_hexstr(hashbytelist)
	print('Message string: "{}"'.format(message))
	print("Message bytelist: {}".format(msgbytelist))
	print("Hash bytelist: {}".format(hashbytelist))
	print("SHA-256 hash (hex): {}".format(hashhexstr))
コード例 #7
0
def cryptobox_rendering(request):
    boxID = 1234    # Your gourl cryptobox ID, https://gourl.io/editrecord/coin_boxes/0
    coin_name = 'bitcoin'
    public_key = 'your-gourl_public-key'
    private_key = 'your-gourl_private-key'
    webdev_key  = 'optional your-web-developer-key'
    amount = 0  # amount in bitcoins (Or another crybtocurrency
    period = '1 MINUTE'
    amountUSD = 5
    userID = request.user.username
    language = 'en'
    iframeID = 'iframeID'
    orderID = 'product-1'
    width = 530
    height = 230
    md5 = md5hash.hash(boxID, coin_name, public_key, private_key, webdev_key, amount,
                        period, amountUSD, userID, language, iframeID, orderID,
                        width, height)
    variables = {'boxID': boxID, 'coin_name': coin_name, 'public_key': public_key, 'webdev_key': webdev_key,
                 'amount': amount, 'period': period, 'amountUSD': amountUSD, 'userID': userID, 'language': language,
                 'iframeID': iframeID, 'orderID': orderID, 'width': width, 'height': height, 'hash': md5}
    return render(request, 'cryptobox_template.html', variables)