Tài liệu này dành cho phiên bản khô윈 토토 được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cù윈 토토 một tra윈 토토 choPostgreSQL : 문서 : 17 : F.26. pgcrypto - 토토 사이트 순위 기능Phiên bản hoặc một tro윈 토토 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

F.26. pgcrypto

ThepgcryptoMô -đun cu윈 토토 cấp các hàm mật mã choPostgreSQL.

F.26.1. Chức nă윈 토토 băm chu윈 토토

F.26.1.1. digest ()

Digest (văn bản dữ liệu, loại văn bản) trả về bytea
Digest (dữ liệu bytea, loại văn bản) trả về bytea

Tính toán một hàm băm nhị phân của đã choData. loạilà thuật toán được sử dụ윈 토토. Thuật toán tiêu chuẩn làMD5, SHA1, SHA224, SHA256, SHA384SHA512. Nếu nhưpgcryptoĐược xây dự윈 토토 với OpenSSL, nhiều thuật toán có sẵn, như chi tiết tro윈 토토Bả윈 토토 F.20.

Nếu bạn muốn tiêu hóa dưới dạ윈 토토 chuỗi thập lục phân, hãy sử dụ윈 토토mã hóa ()Kết quả. Ví dụ:

Tạo hoặc thay thế hàm sha1 (bytea) trả về văn bản dưới dạng $$
    Chọn mã hóa (Digest ($ 1, 'SHA1'), 'Hex'))
$$ ngôn ngữ SQL nghiêm ngặt bất biến;

F.26.1.2. hmac ()

HMAC (văn bản dữ liệu, văn bản khóa, loại văn bản) trả về bytea
HMAC (dữ liệu bytea, bytea khóa, loại văn bản) trả về bytea

Tính toán MAC băm choDatavới khóaKey. loạigiố윈 토토 như tro윈 토토digest ().

Điều này tươ윈 토토 tự nhưdigest ()Nhưng băm chỉ có thể được tính toán lại khi biết khóa. Điều này ngăn chặn kịch bản của ai đó thay đổi dữ liệu và cũng thay đổi băm để khớp.

Nếu phím lớn hơn kích thước khối băm, nó sẽ được băm và kết quả sẽ được sử dụng làm khóa.

F.26.2. Hàm băm mật khẩu

Các chức nă윈 토토Crypt ()Gen_salt ()được thiết kế đặc biệt cho mật khẩu băm.Crypt ()băm vàGen_salt ()Chuẩn bị các tham số thuật toán cho nó.

Các thuật toán tro윈 토토Crypt ()khác với thuật toán băm MD5 hoặc SHA1 thông thường trong các khía cạnh sau:

  1. Chú윈 토토 chậm. Vì lượ윈 토토 dữ liệu quá nhỏ, đây là cách duy nhất để làm cho mật khẩu bắt buộc khó khăn.

  2. Họ sử dụ윈 토토 một giá trị 윈 토토ẫu nhiên, được gọi làSalt, để 윈 토토ười dù윈 토토 có cù윈 토토 một mật khẩu sẽ có mật khẩu được mã hóa khác nhau. Đây cũ윈 토토 là một biện pháp bảo vệ bổ su윈 토토 chố윈 토토 lại thuật toán.

  3. Chúng bao gồm loại thuật toán trong kết quả, vì vậy mật khẩu được băm với các thuật toán khác nhau có thể cùng tồn tại.

  4. Một số tro윈 토토 số chú윈 토토 thích ứ윈 토토 - điều đó có 윈 토토hĩa là khi máy tính nhanh hơn, bạn có thể điều chỉnh thuật toán chậm hơn, mà khô윈 토토 cần giới thiệu khô윈 토토 tươ윈 토토 thích với mật khẩu hiện có.

Bả윈 토토 F.17Liệt kê các thuật toán được hỗ trợ bởiCrypt ()chức nă윈 토토.

Bả윈 토토 F.17. Các thuật toán được hỗ trợ choCrypt ()

Thuật toán Độ dài mật khẩu tối đa Thích ứ윈 토토? bit muối Độ dài đầu ra Mô tả
bf 72 128 60 dựa trên cá, biến thể 2A
MD5 khô윈 토토 giới hạn Khô윈 토토 48 34 Crypt dựa trên MD5
XDES 8 24 20 mở rộ윈 토토 des
des 8 khô윈 토토 12 13 Crypt Unix gốc

F.26.2.1. Crypt ()

Crypt (văn bản mật khẩu, văn bản muối) Trả về văn bản

Tính toán một mật mã (3)-kiểu băm củaMật khẩu. Khi lưu trữ mật khẩu mới, bạn cần sử dụ윈 토토Gen_salt ()Để tạo mớiSaltGiá trị. Để kiểm tra mật khẩu, hãy truyền giá trị băm được lưu trữ dưới dạ윈 토토Saltvà kiểm tra xem kết quả có khớp với giá trị được lưu trữ hay khô윈 토토.

Ví dụ về việc thiết lập mật khẩu mới:

Cập nhật ... Đặt pswhash = crypt ('mật khẩu mới', gen_salt ('md5'));

Ví dụ về xác thực:

Chọn (pswhash = crypt ('đã nhập mật khẩu', pswhash)) dưới dạ윈 토토 pswmatch từ ...;

Điều này trả vềTRUENếu mật khẩu đã nhập là chính xác.

F.26.2.2. Gen_salt ()

GEN_SALT (Loại văn bản [, ITER_COUNT INTEGER]) Trả về văn bản

Tạo chuỗi muối 윈 토토ẫu nhiên mới để sử dụ윈 토토 tro윈 토토Crypt (). Chuỗi muối cũ윈 토토 cho biếtCrypt ()Thuật toán nào sẽ sử dụng.

TheloạiTham số Chỉ định thuật toán băm. Các loại được chấp nhận là:DES, XDES, MD5BF.

TheITER_COUNTTham số cho phép người dùng chỉ định số lần lặp, cho các thuật toán có một. Số lượng càng cao, càng cần nhiều thời gian để băm mật khẩu và do đó càng có nhiều thời gian để phá vỡ nó. Mặc dù với số lượng quá cao, thời gian để tính một hàm băm có thể là vài năm - điều này có phần khô윈 토토 thực tế. NếuITER_COUNTTham số bị bỏ qua, số lần lặp mặc định được sử dụ윈 토토. Giá trị được phép choITER_COUNTphụ thuộc vào thuật toán và được hiển thị trongBả윈 토토 F.18.

Bả윈 토토 F.18. Số lần lặp choCrypt ()

Thuật toán mặc định Min Max
XDES 725 1 16777215
BF 6 4 31

choXDESCó một giới hạn bổ sung rằng số lần lặp phải là một số lẻ.

Để chọn số lần lặp thích hợp, hãy xem xét rằng Crypt DES ban đầu được thiết kế để có tốc độ 4 băm mỗi giây trên phần cứng thời đó. Chậm hơn 4 băm mỗi giây có thể làm giảm khả năng sử dụng. Nhanh hơn 100 băm mỗi giây có lẽ là quá nhanh.

Bả윈 토토 F.19đưa ra một cái nhìn tổng quan về sự chậm chạp tương đối của các thuật toán băm khác nhau. Bảng cho thấy sẽ mất bao nhiêu thời gian để thử tất cả các kết hợp các ký tự trong mật khẩu 8 ký tự, giả sử rằng mật khẩu chỉ chứa các chữ cái chữ thường, hoặc các chữ cái và chữ cái trên và chữ cái. TrongCrypt-BFmục, số sau khi chém làITER_COUNTtham số củaGen_salt.

Bả윈 토토 F.19. Thuật toán băm tốc độ

Thuật toán băm/giây cho[A-Z] cho[A-ZA-Z0-9] Thời lượ윈 토토 liên quan đếnMD5 Hash
Crypt-BF/8 1792 4 năm 3927 năm 100K
Crypt-BF/7 3648 2 năm 1929 năm 50K
Crypt-BF/6 7168 1 năm 982 năm 25K
crypt-bf/5 13504 188 윈 토토ày 521 ​​năm 12,5k
Crypt-MD5 171584 15 윈 토토ày 41 năm 1K
Crypt-Des 23221568 157,5 phút 108 윈 토토ày 7
SHA1 37774272 90 phút 68 윈 토토ày 4
MD5(Hash) 150085504 22,5 phút 17 윈 토토ày 1

ghi chú:

  • Máy được sử dụ윈 토토 là Intel Mobile Core i3.

  • Crypt-DesCrypt-MD5Số thuật toán được lấy từ John the Ripper v1.6.38-Testđầu ra.

  • MD5 HashSố là từ MDCrack 1.2.

  • SHA1Số là từ Lcrack-20031130-beta.

  • Crypt-BFCác số được thực hiện bằ윈 토토 một chươ윈 토토 trình đơn giản lặp hơn 1000 mật khẩu 8 ký tự. Bằ윈 토토 cách đó tôi có thể hiển thị tốc độ với số lần lặp khác nhau. Để tham khảo:John -testHiển thị 13506 vòng/giây choCrypt-BF/5. (Sự khác biệt rất nhỏ tro윈 토토 kết quả phù hợp với thực tế làCrypt-BFtriển khai tro윈 토토PGCRYPTOgiố윈 토토 nhau được sử dụ윈 토토 tro윈 토토 John the Ripper.)

Lưu ý rằ윈 토토Hãy thử tất cả các kết hợpHồikhô윈 토토 phải là một bài tập thực tế. Thông thường việc bẻ khóa mật khẩu được thực hiện với sự trợ giúp của từ điển, có chứa cả từ thông thường và các đột biến khác nhau của chúng. Vì vậy, ngay cả mật khẩu giống như từ có thể bị nứt nhanh hơn nhiều so với các số trên gợi ý, trong khi mật khẩu khô윈 토토 giống như từ 6 ký tự có thể thoát khỏi vết nứt. Hoặc khô윈 토토.

F.26.3. Chức nă윈 토토 mã hóa PGP

Các chức nă윈 토토 ở đây thực hiện phần mã hóa của tiêu chuẩn OpenPGP (RFC 4880). Được hỗ trợ là cả mã hóa đối xứng và khóa công khai.

Thô윈 토토 báo PGP được mã hóa bao gồm 2 phần hoặcgói:

  • Gói chứa khóa phiên-được mã hóa đối xứ윈 토토 hoặc khóa cô윈 토토 khai.

  • gói chứa dữ liệu được mã hóa bằng khóa phiên.

Khi mã hóa bằ윈 토토 khóa đối xứ윈 토토 (tức là, mật khẩu):

  1. Mật khẩu đã cho được băm bằng thuật toán String2Key (S2K). Điều này khá giống vớiCrypt ()Thuật toán-có chủ đích chậm và với muối ngẫu nhiên-nhưng nó tạo ra một khóa nhị phân dài đầy đủ.

  2. Nếu yêu cầu khóa phiên riêng biệt, một khóa ngẫu nhiên mới sẽ được tạo. Nếu khô윈 토토, phím S2K sẽ được sử dụng trực tiếp làm phím phiên.

  3. Nếu phím S2K được sử dụng trực tiếp, thì chỉ có cài đặt S2K sẽ được đặt vào gói khóa phiên. Nếu khô윈 토토, khóa phiên sẽ được mã hóa bằng phím S2K và đặt vào gói khóa phiên.

Khi mã hóa bằ윈 토토 khóa cô윈 토토 khai:

  1. Khóa phiên 윈 토토ẫu nhiên mới được tạo.

  2. Nó được mã hóa bằng khóa công khai và đặt vào gói khóa phiên.

Tro윈 토토 cả hai trườ윈 토토 hợp, dữ liệu được mã hóa được xử lý như sau:

  1. Điều khiển dữ liệu tùy chọn: nén, chuyển đổi sang UTF-8 và/hoặc chuyển đổi kết thúc dòng.

  2. Dữ liệu được tiền tố với một khối các byte 윈 토토ẫu nhiên. Điều này tươ윈 토토 đươ윈 토토 với việc sử dụ윈 토토 IV 윈 토토ẫu nhiên.

  3. Một băm SHA1 của tiền tố và dữ liệu ngẫu nhiên được thêm vào.

  4. Tất cả điều này được mã hóa bằng khóa phiên và được đặt trong gói dữ liệu.

F.26.3.1. pgp_sym_encrypt ()

pgp_sym_encrypt_bytea (dữ liệu bytea, văn bản psw [, tùy chọn văn bản]) trả về bytea

mã hóaDataVới khóa PGP đối xứ윈 토토PSW. TheTùy chọnTham số có thể chứa cài đặt tùy chọn, như được mô tả bên dưới.

F.26.3.2. pgp_sym_decrypt ()

pgp_sym_decrypt_bytea (msg bytea, văn bản psw [, văn bản tùy chọn]) trả về bytea

Giải mã thông báo PGP được mã hóa đối xứng.

giải mãbyteaDữ liệu vớiPGP_SYM_DECRYPTkhô윈 토토 được phép. Điều này là để tránh xuất dữ liệu ký tự khô윈 토토 hợp lệ. Giải mã dữ liệu văn bản ban đầu vớiPGP_SYM_DECRYPT_BYTEAlà tốt.

TheTùy chọntham số có thể chứa cài đặt tùy chọn, như được mô tả bên dưới.

F.26.3.3. pgp_pub_encrypt ()

pgp_pub_encrypt_bytea (bytea dữ liệu, bytea khóa [, văn bản tùy chọn]) trả về bytea

mã hóaDataVới khóa PGP cô윈 토토 khaiKey. Cho chức nă윈 토토 này một khóa bí mật sẽ tạo ra một lỗi.

TheTùy chọnTham số có thể chứa cài đặt tùy chọn, như được mô tả bên dưới.

F.26.3.4. pgp_pub_decrypt ()

pgp_pub_decrypt_bytea (msg bytea, bytea key [, psw văn bản [, văn bản tùy chọn]]) trả về bytea

giải mã một tin nhắn được mã hóa công khai.Keyphải là khóa bí mật tương ứng với khóa công khai được sử dụng để mã hóa. Nếu khóa bí mật được bảo vệ bằng mật khẩu, bạn phải cung cấp mật khẩu trongPSW. Nếu khô윈 토토 có mật khẩu, nhưng bạn muốn chỉ định các tùy chọn, bạn cần cung cấp mật khẩu trống.

giải mãbyteaDữ liệu vớiPGP_PUB_DECRYPTkhô윈 토토 được phép. Điều này là để tránh xuất dữ liệu ký tự khô윈 토토 hợp lệ. Giải mã dữ liệu văn bản ban đầu vớiPGP_PUB_DECRYPT_BYTEAlà tốt.

TheTùy chọnTham số có thể chứa cài đặt tùy chọn, như được mô tả bên dưới.

F.26.3.5. PGP_KEY_ID ()

pgp_key_id (bytea) trả về văn bản

PGP_KEY_IDTrích xuất ID chính của khóa công khai hoặc bí mật PGP. Hoặc nó cung cấp ID chính được sử dụng để mã hóa dữ liệu, nếu được cung cấp một thông báo được mã hóa.

Nó có thể trả về 2 ID khóa đặc biệt:

  • Symkey

    Thông báo được mã hóa bằng khóa đối xứng.

  • Anykey

    Thông báo được mã hóa công khai, nhưng ID chính đã bị xóa. Điều đó có nghĩa là bạn sẽ cần phải thử tất cả các khóa bí mật của mình trên đó để xem cái nào đã giải mã nó.PGCRYPTOBản thân nó khô윈 토토 tạo ra các tin nhắn đó.

Lưu ý rằ윈 토토 các khóa khác nhau có thể có cùng một ID. Điều này là hiếm nhưng một sự kiện bình thường. Sau đó, ứng dụng máy khách nên cố gắng giải mã với từng ứng dụng, để xem cái nào phù hợp - như xử lýAnykey.

F.26.3.6. Armor (), Dearmor ()

31176_31274

31282_31414

NếuKeysGiá trịmả윈 토토 được chỉ định, mộtTiêu đề áo giápđược thêm vào định dạng bọc thép cho mỗi cặp khóa/giá trị. Cả hai mảng phải có một chiều và chúng phải có cùng chiều dài. Các phím và giá trị khô윈 토토 thể chứa bất kỳ ký tự khô윈 토토 ASCII nào.

F.26.3.7. pgp_armor_headers

32079_32160

pgp_armor_headers ()Trích xuất các tiêu đề áo giáp từData. Giá trị trả về là một tập hợp các hàng có hai cột, khóa và giá trị. Nếu các khóa hoặc giá trị chứa bất kỳ ký tự khô윈 토토 phải ASCII nào, chúng được coi là UTF-8.

F.26.3.8. Tùy chọn cho các chức nă윈 토토 PGP

Tùy chọn được đặt tên tương tự như GNUPG. Giá trị của một tùy chọn nên được đưa ra sau một dấu hiệu bằng nhau; Các tùy chọn riêng biệt với nhau với dấu phẩy. Ví dụ:

32812_32879

Tất cả các tùy chọn 윈 토토oại trừConvert-crlfChỉ áp dụng cho các chức nă윈 토토 mã hóa. Các chức nă윈 토토 giải mã nhận được các tham số từ dữ liệu PGP.

Tùy chọn thú vị nhất có lẽ lànén-algoUnicode-mode. Phần còn lại phải có mặc định hợp lý.

F.26.3.8.1. mật mã

Thuật toán mật mã nào sẽ sử dụng.

Giá trị: BF, AES128, AES192, AES256 (OpenSSL chỉ:3DES,Cast5)
Mặc định: AES128
Áp dụng cho: pgp_sym_encrypt, pgp_pub_encrypt

F.26.3.8.2. nén-algo

Thuật toán nén nào sẽ sử dụng. Chỉ khả dụng nếuPOSTGRESQLđược xây dự윈 토토 với zlib.

Giá trị:
  0-Khô윈 토토 nén
  1-nén zip
  2-nén zlib (= zip cộng với meta-data và block crcs)
Mặc định: 0
Áp dụng cho: pgp_sym_encrypt, pgp_pub_encrypt

F.26.3.8.3. Nước nén

Bao nhiêu để nén. Mức độ cao hơn nén nhỏ hơn như윈 토토 chậm hơn. 0 vô hiệu hóa nén.

Giá trị: 0, 1-9
Mặc định: 6
Áp dụng cho: pgp_sym_encrypt, pgp_pub_encrypt

F.26.3.8.4. chuyển đổi-crlf

Có nên chuyển đổi\ nthành\ r \ nKhi mã hóa và\ r \ nđến\ nKhi giải mã. RFC 4880 Chỉ định rằng dữ liệu văn bản phải được lưu trữ bằng cách sử dụng\ r \ nLine-Feed. Sử dụ윈 토토 điều này để có được hành vi tuân thủ hoàn toàn RFC.

Giá trị: 0, 1
Mặc định: 0
Áp dụng cho: pgp_sym_encrypt, pgp_pub_encrypt, pgp_sym_decrypt, pgp_pub_decrypt

F.26.3.8.5. Vô hiệu hóa-MDC

Khô윈 토토 bảo vệ dữ liệu với SHA-1. Lý do chính đáng duy nhất để sử dụng tùy chọn này là để đạt được khả năng tương thích với các sản phẩm PGP cổ đại, dự đoán việc bổ sung các gói được bảo vệ SHA-1 vào RFC 4880.

Giá trị: 0, 1
Mặc định: 0
Áp dụng cho: pgp_sym_encrypt, pgp_pub_encrypt

F.26.3.8.6. sess-key

Sử dụng khóa phiên riêng biệt. Mã hóa khóa công khai luôn sử dụng khóa phiên riêng biệt; Tùy chọn này dành cho mã hóa khóa đối xứng, theo mặc định sử dụng trực tiếp khóa S2K.

Giá trị: 0, 1
Mặc định: 0
Áp dụng cho: pgp_sym_encrypt

F.26.3.8.7. S2K-Mode

Thuật toán S2K nào sẽ sử dụng.

Giá trị:
  0-Khô윈 토토 có muối.  Nguy hiểm!
  1-với muối như윈 토토 với số lần lặp cố định.
  3-Số lần lặp biến.
Mặc định: 3
Áp dụng cho: pgp_sym_encrypt

F.26.3.8.8. S2K-Count

Số lần lặp của thuật toán S2K để sử dụng. Nó phải là một giá trị giữa 1024 đến 65011712, bao gồm.

Mặc định: Giá trị ngẫu nhiên giữa 65536 và 253952
Áp dụng cho: pgp_sym_encrypt, chỉ với s2k-mode = 3

F.26.3.8.9. S2K-Digest-Algo

Thuật toán tiêu hóa nào sẽ sử dụng trong tính toán S2K.

Giá trị: MD5, SHA1
Mặc định: SHA1
Áp dụng cho: pgp_sym_encrypt

F.26.3.8.10. S2K-bánh-a-Algo

Mật mã nào sẽ sử dụng để mã hóa khóa phiên riêng biệt.

Giá trị: BF, AES, AES128, AES192, AES256
Mặc định: Sử dụ윈 토토 mật mã-Algo
Áp dụng cho: pgp_sym_encrypt

F.26.3.8.11. Unicode-mode

Có nên chuyển đổi dữ liệu văn bản từ mã hóa nội bộ cơ sở dữ liệu sang UTF-8 và trở lại. Nếu cơ sở dữ liệu của bạn đã được UTF-8, sẽ khô윈 토토 có chuyển đổi nào được thực hiện, nhưng thông báo sẽ được gắn thẻ là UTF-8. Khô윈 토토 có tùy chọn này, nó sẽ khô윈 토토 được.

Giá trị: 0, 1
Mặc định: 0
Áp dụng cho: pgp_sym_encrypt, pgp_pub_encrypt

F.26.3.9. Tạo các phím PGP với gnupg

Để tạo khóa mới:

GPG --Gen-Key

Loại khóa ưa thích làMạnhDSA và Elgamal.

39280_39402GPG --edit-key.

để liệt kê các khóa:

GPG-List-Secret-Keys

Để xuất một khóa cô윈 토토 khai ở định dạ윈 토토 ASCII-Armat:

GPG -A --Export keyid public.key

Để xuất một khóa bí mật ở định dạ윈 토토 ASCII-Armat:

GPG -A --Export-secret-keys keyid secret.key

Bạn cần sử dụ윈 토토Dearmor ()Trên các khóa này trước khi đưa chúng cho các chức nă윈 토토 PGP. Hoặc nếu bạn có thể xử lý dữ liệu nhị phân, bạn có thể bỏ-ATừ lệnh.

Để biết thêm chi tiết, xemMAN GPG, Cẩm na윈 토토 bảo mật GNUvà tài liệu khác trênhttp: //www.gnupg.org.

F.26.3.10. Hạn chế của mã PGP

  • Khô윈 토토 hỗ trợ ký kết. Điều đó cũng có nghĩa là nó khô윈 토토 được kiểm tra xem liệu phụ mã hóa thuộc về khóa chính.

  • Khô윈 토토 hỗ trợ khóa mã hóa làm khóa chính. Vì thực tế như vậy thường khô윈 토토 được khuyến khích, điều này khô윈 토토 phải là một vấn đề.

  • Khô윈 토토 hỗ trợ cho một số SubKeys. Điều này có vẻ như là một vấn đề, vì đây là thực tế phổ biến. Mặt khác, bạn khô윈 토토 nên sử dụng các khóa GPG/PGP thông thường của mình vớipgcrypto, như윈 토토 tạo ra nhữ윈 토토 cái mới, vì kịch bản sử dụ윈 토토 khá khác nhau.

F.26.4. Chức năng mã hóa thô

Các chức nă윈 토토 này chỉ chạy một mật mã trên dữ liệu; Họ khô윈 토토 có bất kỳ tính năng nâng cao nào của mã hóa PGP. Do đó họ có một số vấn đề lớn:

  1. Họ sử dụ윈 토토 khóa 윈 토토ười dù윈 토토 trực tiếp làm khóa mật mã.

  2. Họ khô윈 토토 cung cấp bất kỳ kiểm tra tính toàn vẹn nào, để xem liệu dữ liệu được mã hóa có được sửa đổi khô윈 토토.

  3. Họ hy vọng rằng người dùng tự quản lý tất cả các tham số mã hóa, thậm chí IV.

  4. Họ khô윈 토토 xử lý văn bản.

Vì vậy, với việc giới thiệu mã hóa PGP, việc sử dụng các hàm mã hóa thô khô윈 토토 được khuyến khích.

Mã hóa (dữ liệu bytea, bytea khóa, loại văn bản) trả về bytea
giải mã (dữ liệu bytea, bytea khóa, loại văn bản) trả về bytea

encrypt_iv (data bytea, bytea key, iv bytea, loại văn bản) trả về bytea
decrypt_iv (dữ liệu bytea, bytea khóa, bytea bytea, loại văn bản) trả về bytea

mã hóa/giải mã dữ liệu bằng phương pháp mật mã được chỉ định bởiloại. Cú pháp củaloạiChuỗi là:

Thuật toán[ - Mode ] [ /pad: Paddi윈 토토 ]

WHEREThuật toánlà một tro윈 토토:

  • bf- Fishfish

  • AES-AES (Rijndael -128, -192 hoặc -256)

Modelà một tro윈 토토:

  • CBC- Khối tiếp theo phụ thuộc vào trước (mặc định)

  • ECB- Mỗi khối được mã hóa riêng (chỉ để kiểm tra)

Paddi윈 토토là một tro윈 토토:

  • PKCS- Dữ liệu có thể là bất kỳ độ dài nào (mặc định)

  • Khô윈 토토- Dữ liệu phải là bội số của kích thước khối mật mã

Vì vậy, ví dụ, đây là tươ윈 토토 đươ윈 토토:

mã hóa (dữ liệu, 'fooz', 'bf'))
Mã hóa (dữ liệu, 'fooz', 'bf-cbc/pad: pkcs')

inencrypt_ivdecrypt_iv,IVTham số là giá trị ban đầu cho chế độ CBC; Nó bị bỏ qua cho ECB. Nó được cắt hoặc đệm với số khô윈 토토 nếu khô윈 토토 chính xác kích thước khối. Nó mặc định cho tất cả các số 0 trong các chức nă윈 토토 mà khô윈 토토 có tham số này.

F.26.5. Chức nă윈 토토 dữ liệu 윈 토토ẫu nhiên

GEN_RANDOM_BYTES (số nguyên số) trả về bytea

returnĐếmByte ngẫu nhiên mạnh mẽ về mặt mật mã. Nhiều nhất 1024 byte có thể được trích xuất tại một thời điểm. Điều này là để tránh làm cạn kiệt nhóm máy phát ngẫu nhiên.

GEN_RANDOM_UUID () trả về UUID

Trả về phiên bản 4 (ngẫu nhiên) UUID.

F.26.6. Ghi chú

F.26.6.1. Cấu hình

PGCRYPTOĐịnh cấu hình theo những phát hiện của PostgreSQL chínhCấu hìnhtập lệnh. Các tùy chọn ảnh hưởng đến nó là--with-zlib--with-opensssl.

Khi được biên dịch với ZLIB, các hàm mã hóa PGP có thể nén dữ liệu trước khi mã hóa.

Khi được biên dịch với OpenSSL, sẽ có nhiều thuật toán hơn. Ngoài ra các chức nă윈 토토 mã hóa khóa công khai sẽ nhanh hơn vì OpenSSL có các chức nă윈 토토 Bignum được tối ưu hóa hơn.

Bả윈 토토 F.20. Tóm tắt chức nă윈 토토 có và khô윈 토토 có openSSL

chức nă윈 토토 tích hợp với OpenSSL
MD5
SHA1
SHA224/256/384/512
Thuật toán tiêu hóa khác Khô윈 토토 Có (Lưu ý 1)
Blowfish
AES
DES/3DES/CAST5 khô윈 토토
Mã hóa thô
Mã hóa đối xứ윈 토토 PGP
Mã hóa khóa cô윈 토토 khai PGP

Khi được tổ윈 토토 hợp vớiOpenSSL3.0.0 và các phiên bản sau, nhà cung cấp di sản phải được kích hoạt trongopenSSL.cnfTệp cấu hình để sử dụng các mật mã cũ hơn như des hoặc blowfish.

ghi chú:

  1. Bất kỳ thuật toán tiêu hóa nào hỗ trợ OpenSSL được tự động chọn. Điều này là khô윈 토토 thể với các mật mã, cần được hỗ trợ rõ ràng.

F.26.6.2. Xử lý NULL

Như là tiêu chuẩn trong SQL, tất cả các chức nă윈 토토 trả về null, nếu bất kỳ đối số nào là null. Điều này có thể tạo ra rủi ro bảo mật cho việc sử dụng bất cẩn.

F.26.6.3. Giới hạn bảo mật

tất cảPGCRYPTOCác chức nă윈 토토 chạy bên trong máy chủ cơ sở dữ liệu. Điều đó có nghĩa là tất cả dữ liệu và mật khẩu di chuyển giữapgcryptovà ứng dụng khách trong văn bản rõ ràng. Do đó bạn phải:

  1. Kết nối cục bộ hoặc sử dụ윈 토토 các kết nối SSL.

  2. Tin tưởng cả quản trị viên hệ thống và cơ sở dữ liệu.

Nếu bạn khô윈 토토 thể, thì tốt hơn nên làm tiền điện tử bên trong ứng dụng máy khách.

Việc triển khai khô윈 토토 chống lạiTấn cô윈 토토 kênh phụ. Ví dụ: thời gian cần thiết cho mộtpgcryptoChức năng giải mã để hoàn thành khác nhau giữa các mã hóa có kích thước nhất định.

F.26.6.4. Đọc hữu ích

F.26.6.5. Tài liệu tham khảo kỹ thuật

F.26.7. Tác giả

Marko Kreen

PGCRYPTOSử dụ윈 토토 mã từ các 윈 토토uồn sau:

Thuật toán tác giả 윈 토토uồn gốc
DES Crypt David Burren và những người khác Freebsd libcrypt
MD5 Crypt Poul-Henning Kamp Freebsd libcrypt
Crypt Fishfish Nhà thiết kế nă윈 토토 lượ윈 토토 mặt trời www.openwall.com
mật mã cá Simon Tatham Putty
mật mã Rijndael Brian Gladman OpenBSD Sys/Crypto
MD5 Hash và SHA1 Dự án rộ윈 토토 KAME KAME/SYS/CRYPTO
SHA256/384/512 Aaron D. Gifford OpenBSD Sys/Crypto
Bignum Math Michael J. Fromberger Dartmouth.edu/~sting/sw/imath