30/09/2018, 17:37

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.

viết 19:47 ngày 30/09/2018

PHP

$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

vũ xuân quân viết 19:53 ngày 30/09/2018

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 đó

Nguyễn Phú viết 19:39 ngày 30/09/2018

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

Nguyễn Phú viết 19:48 ngày 30/09/2018

em tìm hiểu về khái niệm public key.

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

Thành Phạm viết 19:47 ngày 30/09/2018

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

Bài viết được post tại đây: http://portal.daynhauhoc.com/p/tan-man-ve-mat-ma-hien-dai-part-1/ Tản mạn về Mật mã hiện đại (part 1) Mật mã là một vấn đề gắn liền với suốt chiều dài lịch sử của con người và có thể nói là mật mã học đã đặt nền móng cho ngành khoa học máy tính phát triển. Hôm nay mình viết bài này xin chia sẻ một số kiến thức về mật mã hiện đại mà mình góp nhặt được, hi vọng bài viết này sẽ có ích blush [image] Con người từng nghĩ ra đủ loại mã hoá, rồi cũng chính con người cũng…
vũ xuân quân viết 19:39 ngày 30/09/2018

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.
Nguyễn Phú viết 19:48 ngày 30/09/2018

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

Minh Hoàng viết 19:49 ngày 30/09/2018

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. trên blog của anh dnthai cũng có giới thiệu một chút.

Nguyễn Phú viết 19:41 ngày 30/09/2018

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

RSA hay quá

vi.m.wikipedia.org

RSA (mã hóa)

Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai. Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng. RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn. Thuật toán được Ron Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại Học viện Công nghệ Massachusetts (...

Minh Hoàng viết 19:47 ngày 30/09/2018

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

en.wikipedia.org

Generating primes | Large primes

For the large primes used in cryptography, it is usual to use a modified form of sieving: a randomly chosen range of odd numbers of the desired size is sieved against a number of relatively small primes (typically all primes less than 65,000). The remaining candidate primes are tested in random order with a standard probabilistic primality test such as the Baillie-PSW primality test or the Miller-Rabin primality test for probable primes. Alternatively, a number of techniques exist for efficient...


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

Nguyễn Phú viết 19:42 ngày 30/09/2018

mình có 2 ngày search và 2 ngày làm demo. 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.

vũ xuân quân viết 19:42 ngày 30/09/2018

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

Nguyễn Phú viết 19:42 ngày 30/09/2018

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

vi.wikipedia.org

Advanced Encryption Standard

Trong mật mã học, Advanced Encryption Standard (tiếng Anh, viết tắt: AES, nghĩa là Tiêu chuẩn mã hóa tiên tiến) là một thuật toán mã hóa khối được chính phủ Hoa kỳ áp dụng làm tiêu chuẩn mã hóa. Giống như tiêu chuẩn tiền nhiệm DES, AES được kỳ vọng áp dụng trên phạm vi thế giới và đã được nghiên cứu rất kỹ lưỡng. AES được chấp thuận làm tiêu chuẩn liên bang bởi Viện tiêu chuẩn và công nghệ quốc gia Hoa kỳ (NIST) sau một quá trình tiêu chuẩn hóa kéo dài 5 năm (Xem thêm: quá trình thiết kế AES). T...

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

Đào Trọng Nghĩa viết 19:53 ngày 30/09/2018

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

en.wikipedia.org

BMP file format | Pixel storage

The bits representing the bitmap pixels are packed in rows. The size of each row is rounded up to a multiple of 4 bytes (a 32-bit DWORD) by padding. For images with height above 1, multiple padded rows are stored consecutively, forming a Pixel Array. The total number of bytes necessary to store one row of pixels can be calculated as:

Nguyễn Phú viết 19:44 ngày 30/09/2018

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

Bài liên quan
0