Làm sao để encrypt và decrypt khi gửi file?

Mình đang làm phần share file giữ các users với nhau(kiểu như share file trong slack chẳng hạn).

Nhưng muốn bảo mật dữ liệu, bằng cách mã hoá file trước khi gửi và giải mã file khi nhận.
Khi mã hoá sẽ có tạo ra 1 key, và những người nhận file phải có key này mới có thể giải mã.

Kiến thức về mã hoá thì mình gần như không biết nên ai rành hoặc chuyên phần này trợ giúp mình với.

1 Like

PHP :elephant:

$zip = new ZipArchive();
$code = $zip->open('myzip.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);
    if ($code === true)
        echo 'zip opened<br>';
    else
        echo $code.'<br>';
    $zip->addFile('somefile');

    $code = $zip->setPassword('secret');

    if ($code === true)
        echo 'password set<br>';
    else
        echo $code.'<br>';

    $code = $zip->close();
    if ($code === true)
        echo 'closed<br>';
    else
        echo $code.'<br>';

    echo 'done<br>';

Còn decrypt thì chưa support :smiley:

1 Like

em tìm hiểu về khái niệm public key.
sau đó thì tìm tool hoặc tự viết cho mình cái tools đó

1 Like

tự nhiên có task, giờ phải ngồi học mấy cái này. yêu cầu làm share file kiểu Mega.nz

hehe, đúng cái này rồi, đang tìm hiểu public key

1 Like

Lý thuyết thì anh đọc bài này xem có giúp được gì không :smile:

2 Likes

hồi xưa anh có học nên chỉ nhớ chút ít thôi.
nghiên cứu thêm một trong 2 loại thuật toán:

  1. Asymmetric Algorihms: RSA, ECC (Elliptic Curve Cryptosystem), ELGamal
  2. Hash Functions: MD2, MD4, MD5, SHA (sucure has algorihm).
    anh nghĩ em nên nghiên cứu hash function: MD5 và SHA. Vì 2 cái này hình như chưa bị hack.
    p/s: nghiên cứu cách áp dụng nhé. Chứa đụng vô thuật toán thì nhức đầu lắm.

cái RSA là đúng yêu cầu rồi đó anh. Đang đọc tài liệu về cái này.
Cái thuật toán MD5, SHA chỉ hash 1 chiều không giữ bí mật theo kiểu Peer to peer được.

thanks a

Nếu anh cần yêu cầu về thời gian tạo khóa thì nghiên cứu ECC nhé, dùng khóa ngắn hơn RSA nhưng vẫn bảo mật tương đương. :smiley: trên blog của anh dnthai cũng có giới thiệu một chút.

3 Likes

Cám ơn @Rok_Hoang nhé để mai đọc thử.

RSA hay quá

2 Likes

Đây là thuật tóan để sản sinh số nguyên tố lớn :smiley:


task anh đang làm deadline sát ko nhỉ?

1 Like

mình có 2 ngày search và 2 ngày làm demo. :slight_smile: nên chọn cái nào an toàn và lành tính trước.

Còn 1 thắc mắc là nếu mình tạo ra 1 khoá để mã hoá file thì khoá đó sẽ lưu ở đâu.

em lưu vào một file text nào đó để chương trình đọc hoặc là cho 1 ô textbox để nhập

Sếp chọn cách mã hoá AES 256.

hơi khác so với RSA 1 chút. :frowning:

Mã hóa bạn nên tự bịa ra 1 cách mã hóa ^^
trong bảo mật gọi là cyptor ( mã học) và Steganography (Dấu thư, mở rộng hơn với ảnh , file nhạc ,v.v.v)
đơn giản với .bmp

1 Like

Mình thật sự không giỏi toán hay giỏi về mã hoá. Nên đang dùng cái có sẵn. Mình đang dùng kiểu AES để mã hoá file.

Cám ơn bạn về lời khuyên :smiley:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?