Python dosya oluşturma

Şuan nasıl anlatsam bilemedim. :slight_smile:

parolayı oluşturdum. Sonra txt de attım. O txt dosyasını da usb yükledim. O usb taktığım pc nin içinde o dosyayı kontrol edicek. Sonra da ekran açılacak…

Oluşturmam çok uzun sürebilir.

takılan bilgisayarın öncelikle usb portları dinlenmeli usb nin takıldığı disk c diskine çıkarılmalı çünkü her windowsda c vardır. çıkarıldıktan sonra o dizine girip o .txt dosyasını okuyup şifreyi alabilir.

Python da bir dosyayı şifrelemek için modül varmı?

1 Beğeni

Bilinen bir teknik kullanirsaniz baskasi ugrasip o sifreyi cozebilir.

Bulunacağını pek sanmıyorum. Dosyanın kopyalanmasını engelleme de yapıcam. :slight_smile:

Dosyayi sifreledin. Sifreleme anahtarini nerede tutacaksin? Her nerede tutuyorsan, txt’ye koyulan parolayi oraya koy?

Evet. Bilinmeyen bir teknik kullanilirsa da, baskasi ugrasmadan o sifreyi cozebilir.

1 Beğeni

Bu modül ile şifrelemeye çalışcam.

https://www.tutorialspoint.com/python/os_chmod.htm

Niye ki? Kendi tekniğimizi üretirsek başkası nasıl uğraşmadan çözecek?

Şifreleme algoritması kendinizin diye kırılmayacak bir kanun yok herhalde illahaki kırılacaktır sonuç olarak tüm şifreleme türleri ilk çıktığında ilk çıkaran insanlarındı ve sizin yaptığınız şifreleme algoritmaları ne kadar sağlam olabilir ? o tarz algoritmalar için ne kadar zaman ugraşılıyor iki üç saniyelik bir iş değil.

bu modül ile şifrelemeye çalışacağım derken attığınız modül os modülünün chmod özelliğini göstermiş ve aldığı parametreler ise okuma kipi yazma kipi v.s bu bir şifreleme değildir izin olayları bunlar.

Yanlış yazmışım. :slight_smile: o modül oluşturduğum dosyanın kimlerin kullanabileceği için bir özellik.

İki üç saniyeden kısa sürer.

chars = "A B C Ç D E F G Ğ H I İ J K L M N O Ö P R S Ş T U Ü V Y Z".split(" ")

import random
random.shuffle(chars)

numbers = list(range(1, 30))
random.shuffle(numbers)

algorithm = dict(zip(chars, numbers))

Üretilebilecek en basit algoritma. İçine + , * - gibilerini de atıp güçlendirilebilir. Şifreleme içinse; (bir şifreleme algoritmasının a.json içinde olduğunu varsayalım.)

import json
a = json.load("a.json")

def parse(data, algorithm):
    assert isinstance(data, str)
    assert isinstance(algorithm, dict)
    d = ""
    for i in data:
        d += str(algorithm.get(i, " ")) + "."
    return d.strip(".")

password = "FKDKENUEF"
print(parse(password, a))

Kod çalıştığı zaman sadece nokta çıktısı veriyor. Şurayı değiştirmek lazım

algorithm = dict(zip(numbers, chars))

yerine

algorithm = dict(zip(chars, numbers))

Birisi dönüştürme için gerekli json dosyasını ele geçirse tüm şifreleri çözebilir. Anahtarlamalı olmayan şifrelemelerde bir verinin çıktısının ne olduğunu brute force ile bulmak,tahmin etmek mümkün. Şifrelemeyi bit düzeyinde yapmak daha güvenlidir.

Bir de AES şifreleme algoritmasının nasıl çalıştığına bakın isterseniz

http://bilgisayarkavramlari.sadievrenseker.com/2009/06/03/aes-ve-rijndeal-sifreleme/

1 Beğeni

bende sana onu diyorum zaten senin yaptığın şu algoritmayı bir insan çözemiyecek mi zannediyorsun yani şuanda yapmış olduğun bu algoritmayı sağlam olarak mı görüyorsun md5 v.s gibi şeyler neden kırılamıyor sence 3 saniye veya 2 saniye demi oluyor bunlar ?
ayrı ayrı satırlarda assert yazmanıza gerek yok and ile birleştirip tek assert ile yapabilirsiniz.

assert isinstance(data,str) and isinstance(algorithm,dict)

herhangi birisi false döndürdüğü zaman yine AssertionError yükselticektir ikisininde doğru olduğu durumda devam edicektir.

Haklısınız. Bunlar Brute Force ile çözülebilir. Bit düzeyinde yapmak derken tam olarak neyi kast ediyorsunuz?

1 Beğeni

Bit düzeyinde işlem yapmaktan kastım, elinizdeki bilgiyi önce binary hale getirmek ve sonra da bunu çeşitli bit operatörleri ile(and,or,exor,shift vs) değiştirmektir.

https://wiki.python.org/moin/BitwiseOperators

1 Beğeni

Monoalphabetic substitution cipher. Bilinen en eski sifreleme yontemi olabilir. Ilkokulda QBASIC’le yazmistim, keyspace 256! buyuklugunde oldugu icin kirmanin imkansiz oldugunu dusunuyordum. Sonra frekans analizini ogrendim…

MD5 sifreleme algoritmasi degil.

Lutfen yapmayin. Birbirleriyle alakasiz assert’leri ayri satirlarda gormek istiyoruz.

Yukaridaki ASCII data da binary. Hatta bilgisayara alabildigin butun data tanim geregi binary.

Burada sanirim demek istedigin “diffusion kullan”. Veya “substitution cipher/ECB kullanma”.

1 Beğeni

Aslında haklısınız binary tabiri yanlış olmuş. Kısaca demek istediğim eldeki veriyi bitleriyle oynayarak(kaydırma,xor’lama vs) şifrelemeye çalış. Buna diffusion mu deniyor acaba?

1 Beğeni