pg범퍼카 토토o
모듈은 범퍼카 토토 함수를 제공합니다PostgreSQL.
digest ()
다이제스트 (데이터 텍스트, 텍스트 유형)는 bytea를 반환합니다
주어진 바이너리 해시를 계산합니다data
. 타입
사용할 알고리즘입니다. 표준 알고리즘은MD5
, SHA1
, SHA224
, SHA256
, SHA384
및SHA512
. 만약에pg범퍼카 토토o
OpenSSL로 제작되었으며 자세히 설명 된대로 더 많은 알고리즘을 사용할 수 있습니다.테이블 F.19.
다각형 문자열로 다이제스트를 원한다면encode ()
결과. 예를 들어:
함수 생성 또는 교체 SHA1 (BYTEA) 텍스트를 $$로 반환합니다
함수범퍼카 토토 ()
및gen_salt ()
비밀번호 해싱 용으로 특별히 설계되었습니다.범퍼카 토토 ()
해싱 및gen_salt ()
알고리즘 매개 변수 준비.
알고리즘범퍼카 토토 ()
다음 측면에서 일반적인 MD5 또는 SHA1 해싱 알고리즘과 다릅니다 :
느린다. 데이터의 양이 너무 작기 때문에 이것은 무차별 대결 암호를 어렵게 만드는 유일한 방법입니다.
그들은 random 값을 사용합니다.SALT, 동일한 암호를 가진 사용자가 범퍼카 토토 된 암호가 다릅니다. 이것은 또한 알고리즘을 뒤집는 것에 대한 추가 방어입니다.
결과에 알고리즘 유형이 포함되어 있으므로 다른 알고리즘으로 해시 된 암호는 공존 할 수 있습니다.
그중 일부는 적응력이 있습니다. 즉, 컴퓨터가 더 빨라질 때 기존 암호와 비 호환성을 도입하지 않고도 알고리즘을 느리게 조정할 수 있습니다..
테이블 F.16범퍼카 토토 ()
기능.
표 F.16. 지원되는 알고리즘범퍼카 토토 ()
알고리즘 | 최대 비밀번호 길이 | 적응 형? | 소금 비트 | 출력 길이 | 설명 |
---|---|---|---|---|---|
BF |
72 | 예 | 128 | 60 | Blowfish-Based, Variant 2A |
MD5 |
무제한 | 아니오 | 48 | 34 | MD5 기반 Crypt |
XDES |
8 | 예 | 24 | 20 | 확장 DES |
des |
8 | 아니오 | 12 | 13 | 원래 Unix 범퍼카 토토 |
범퍼카 토토 ()
범퍼카 토토 (비밀번호 텍스트, 소금 텍스트) 텍스트를 반환
암호 계산 (3)-스타일 해시비밀번호
. 새 비밀번호를 저장할 때 사용해야합니다.gen_salt ()
새로운 생성SALT
값. 비밀번호를 확인하려면 저장된 해시 값을 전달합니다.SALT
, 결과가 저장된 값과 일치하는지 여부를 테스트합니다.
새 비밀번호 설정의 예 :
업데이트 ... set pswhash = 범퍼카 토토 ( 'new password', gen_salt ( 'md5'));
인증의 예 :
PSWMATCH에서 ...;로 선택한 (pswhash = 범퍼카 토토 ( 'Enthed Password', PSWHASH))를 선택하십시오.
이것은 반환True
입력 된 암호가 올바른 경우.
gen_salt ()
gen_salt (텍스트 유형 [, iter_count integer]) 텍스트를 반환
범퍼카 토토 ()
. 소금 끈도 말해범퍼카 토토 ()
사용할 알고리즘.
타입
매개 변수 해싱 알고리즘을 지정합니다. 허용 된 유형은 다음과 같습니다.des
, XDES
, MD5
및BF
.
iter_count
매개 변수를 사용하면 사용자가 반복 카운트를 지정할 수 있습니다. 카운트가 높을수록 비밀번호를 해시하는 데 더 많은 시간이 걸리므로 더 많은 시간이 걸립니다.iter_count
매개 변수가 생략되고 기본 반복 카운트가 사용됩니다. 허용 값iter_count
알고리즘에 의존하고테이블 F.17.
표 F.17. 반복 카운트범퍼카 토토 ()
알고리즘 | 기본값 | Min | max |
---|---|---|---|
XDES |
725 | 1 | 16777215 |
BF |
6 | 4 | 31 |
forXDES
반복 카운트가 홀수 숫자 여야한다는 추가 제한이 있습니다.
적절한 반복 카운트를 선택하려면 원래 DES 범퍼카 토토가 해당 하드웨어에서 초당 4 개의 해시 속도를 갖도록 설계되었음을 고려하십시오. 초당 4 해시보다 느리면 유용성이 약화 될 수 있습니다.
테이블 F.18다른 해싱 알고리즘의 상대 속도가 느려지는 개요를 제공합니다. 이 표는 암호에 소문자 또는 하급 문자 및 숫자 만 포함되어 있다고 가정 할 때 8 문자 암호로 문자의 모든 조합을 시도하는 데 얼마나 많은 시간이 걸리는지를 보여줍니다.범퍼카 토토-bf
항목, 슬래시 후 숫자는입니다.iter_count
매개 변수gen_salt
.
테이블 F.18. 해시 알고리즘 속도
알고리즘 | 해시/초 | for[A-Z] |
for[A-Za-Z0-9] |
기간에 대한 기간MD5 HASH |
---|---|---|---|---|
범퍼카 토토-bf/8 |
1792 | 4 년 | 3927 년 | 100k |
범퍼카 토토-bf/7 |
3648 | 2 년 | 1929 년 | 50k |
범퍼카 토토-bf/6 |
7168 | 1 년 | 982 년 | 25K |
범퍼카 토토-bf/5 |
13504 | 188 일 | 521 년 | 12.5k |
범퍼카 토토-md5 |
171584 | 15 일 | 41 년 | 1K |
crypt-des |
23221568 | 157.5 분 | 108 일 | 7 |
SHA1 |
37774272 | 90 분 | 68 일 | 4 |
MD5 (해시) |
150085504 | 22.5 분 | 17 일 | 1 |
참고 :
사용되는 기계는 인텔 모바일 코어 i3입니다.
crypt-des
및범퍼카 토토-md5
알고리즘 번호는 John The Ripper v1.6.38에서 가져 왔습니다.-test
출력.
MD5 HASH
숫자는 mdcrack에서 나온 것입니다.
SHA1
숫자는 Lcrack-20031130-Beta에서 나온 것입니다.
범퍼카 토토-bf
숫자는 1000 개 이상의 8 자 암호를 반복하는 간단한 프로그램을 사용하여 사용됩니다. 그렇게하면 다른 수의 반복으로 속도를 보여줄 수 있습니다.John -test
13506 루프/SEC for 표시범퍼카 토토-bf/5
. (결과의 매우 작은 차이는 사실에 따른 것입니다.범퍼카 토토-bf
구현pg범퍼카 토토o
John the Ripper에서 사용 된 것과 동일합니다.)
참고“모든 조합 시도”는 현실적인 운동이 아닙니다. 일반적으로 비밀번호 균열은 사전과 다양한 돌연변이를 모두 포함하는 사전의 도움으로 수행됩니다.
여기에서 함수는 OpenPGP (RFC 4880) 표준의 범퍼카 토토 부분을 구현합니다. 지원되는 대칭 키 및 공개 키 범퍼카 토토입니다.
범퍼카 토토 된 PGP 메시지는 두 부분으로 구성됩니다.패킷:
세션 키를 포함하는 패킷-대칭 키 또는 공개 키 범퍼카 토토.
세션 키와 범퍼카 토토 된 데이터를 포함하는 패킷.
대칭 키를 범퍼카 토토 할 때 (즉, 암호) :
주어진 암호는 String2key (S2K) 알고리즘을 사용하여 해시됩니다. 이것은와 다소 비슷합니다.범퍼카 토토 ()
알고리즘-의도적으로 느리고 임의의 소금으로-전장 바이너리 키를 생성합니다.
별도의 세션 키가 요청되면 새로운 랜덤 키가 생성됩니다. 그렇지 않으면 S2K 키는 세션 키로 직접 사용됩니다.
S2K 키를 직접 사용하려면 S2K 설정 만 세션 키 패킷에 넣습니다. 그렇지 않으면 세션 키가 S2K 키로 범퍼카 토토되어 세션 키 패킷에 넣습니다.
공개 키로 범퍼카 토토 할 때 :
새로운 랜덤 세션 키가 생성됩니다.
공개 키를 사용하여 범퍼카 토토되어 세션 키 패킷에 넣습니다.
두 경우 모두 범퍼카 토토 할 데이터가 다음과 같이 처리됩니다.
선택적 데이터 조작 : 압축, UTF-8 로의 전환 및/또는 라인 목록의 변환.
데이터는 임의의 바이트 블록으로 접두사를 만듭니다. 이것은 임의의 IV를 사용하는 것과 같습니다.
랜덤 접두사 및 데이터의 SHA1 해시가 추가되었습니다.
이 모든 것은 세션 키로 범퍼카 토토되어 데이터 패킷에 배치됩니다.
pgp_sym_en범퍼카 토토 ()
PGP_SYM_EN범퍼카 토토 (데이터 텍스트, PSW 텍스트 [, 옵션 텍스트])는 BYTEA를 반환합니다.
범퍼카 토토data
대칭 PGP 키와 함께PSW
. 그만큼옵션
매개 변수는 아래에 설명 된대로 옵션 설정을 포함 할 수 있습니다.
pgp_sym_de범퍼카 토토 ()
PGP_SYM_DECRYPT (MSG BYTEA, PSW 텍스트 [, 옵션 텍스트]) 텍스트를 반환합니다.
대칭 키 범퍼카 토토 된 PGP 메시지를 해독합니다.
해독BYTEA
withpgp_sym_de범퍼카 토토
허용되지 않습니다. 이것은 잘못된 문자 데이터를 출력하지 않습니다.PGP_SYM_DECRYPT_BYTEA
괜찮습니다.
옵션
매개 변수는 아래에 설명 된대로 옵션 설정을 포함 할 수 있습니다.
pgp_pub_en범퍼카 토토 ()
PGP_PUB_ENCRYPT (데이터 텍스트, 키 바이트 [, 옵션 텍스트])는 BYTEA를 반환합니다.
범퍼카 토토data
공개 PGP 키 포함키
. 이 기능을 비밀 키에게 제공하면 오류가 발생합니다.
옵션
매개 변수는 아래에 설명 된대로 옵션 설정을 포함 할 수 있습니다.
pgp_pub_de범퍼카 토토 ()
pgp_pub_decrypt (msg bytea, key bytea [, psw text [, 옵션 텍스트]]) 텍스트를 반환합니다.
공개 키 범퍼카 토토 메시지를 해독합니다.키
범퍼카 토토에 사용 된 공개 키에 해당하는 비밀 키 여야합니다. 비밀 키가 암호로 보호 된 경우에서 암호를 제공해야합니다.PSW
. 비밀번호가 없지만 옵션을 지정하려면 빈 비밀번호를 제공해야합니다.
해독BYTEA
withPGP_PUB_DE범퍼카 토토
허용되지 않습니다. 이것은 잘못된 문자 데이터를 출력하지 않습니다.PGP_PUB_DE범퍼카 토토_BYTEA
괜찮습니다.
옵션
매개 변수는 아래에 설명 된대로 옵션 설정을 포함 할 수 있습니다.
pgp_key_id ()
pgp_key_id (bytea) 텍스트를 반환
pgp_key_id
PGP 공개 또는 비밀 키의 키 ID를 추출합니다. 또는 범퍼카 토토 된 메시지가 주어지면 데이터를 범퍼카 토토하는 데 사용 된 키 ID를 제공합니다.
2 개의 특별 키 ID를 반환 할 수 있습니다 :
Symkey
메시지는 대칭 키로 범퍼카 토토됩니다.
Anykey
메시지는 공개 키 범퍼카 토토되었지만 키 ID가 제거되었습니다. 즉, 어떤 비밀 키를 해독하는지 확인하기 위해 모든 비밀 키를 시도해야합니다.pg범퍼카 토토o
그 자체는 그러한 메시지를 생성하지 않습니다.
다른 키는 동일한 ID를 가질 수 있습니다. 이것은 드물지만 정상적인 사건입니다.Anykey
.
Armor ()
, dearmor ()
Armor (Data Bytea [, Keys Text [], value text []]) 텍스트를 반환합니다.
이 함수는 PGP Ascii-Armor 형식으로 래프/랩핑 바이너리 데이터를 포장합니다. 기본적으로 CRC 및 추가 서식이 포함 된 Base64입니다.
키
및값
배열이 지정되어 있습니다.갑옷 헤더각 키/값 쌍의 장갑 형식에 추가됩니다. 두 배열 모두 단일 차원이어야하며 길이가 같아야합니다.
pgp_armor_headers
PGP_ARMOR_HEADERS (데이터 텍스트, 키 아웃 텍스트, 값 텍스트 텍스트)를 반환
pgp_armor_headers ()
갑옷 헤더 추출data
. 리턴 값은 키와 값의 두 열이있는 행 세트입니다.
옵션은 gnupg와 유사하게 지명되었습니다. 옵션의 값은 동일한 부호 후에 제공되어야합니다.
pgp_sym_encrypt (data, psw, 'compress-algo = 1, cipher-algo = aes256')
제외한 모든 옵션Convert-CRLF
범퍼카 토토 함수에만 적용하십시오. 해독 함수는 PGP 데이터에서 매개 변수를 얻습니다.
가장 흥미로운 옵션은 아마도입니다.compress-algo
및유니 코드 모드
. 나머지는 합리적인 불이행이 있어야합니다.
사용할 암호 알고리즘.
값 : BF, AES128, AES192, AES256 (OpenSSL- 전용 :3DES
,Cast5
)
기본값 : AES128
적용 : pgp_sym_en범퍼카 토토, pgp_pub_en범퍼카 토토
사용할 압축 알고리즘. 사용 가능PostgreSQLZlib와 함께 지어졌습니다.
값 :
0- 압축 없음
1- 지퍼 압축
2-Zlib 압축 (= zip plus meta-data and block crcs)
기본값 : 0
적용 : pgp_sym_en범퍼카 토토, pgp_pub_en범퍼카 토토
압축 할 금액. 더 높은 레벨은 더 작지만 느리게 압축됩니다.
값 : 0, 1-9
기본값 : 6
적용 : pgp_sym_en범퍼카 토토, pgp_pub_en범퍼카 토토
변환 여부\ n
in\ r \ n
범퍼카 토토 할 때\ r \ n
to\ n
해독 할 때. RFC 4880은 텍스트 데이터를 사용하여 저장해야한다고 지정합니다.\ r \ n
라인 피드. 이것을 사용하여 완전히 RFC 호환 동작을 얻으십시오.
값 : 0, 1
기본값 : 0
신청
SHA-1로 데이터를 보호하지 마십시오. 이 옵션을 사용하는 유일한 이유는 고대 PGP 제품과의 호환성을 달성하여 RFC 4880에 SHA-1 보호 패킷을 추가하는 것을 포기하는 것입니다. 최근 gnupg.org 및 pgp.com 소프트웨어가 잘 지원됩니다..
값 : 0, 1
기본값 : 0
적용 : pgp_sym_en범퍼카 토토, pgp_pub_en범퍼카 토토
별도의 세션 키 사용. 공개 키 범퍼카 토토는 항상 별도의 세션 키를 사용합니다.
값 : 0, 1
기본값 : 0
적용 : pgp_sym_en범퍼카 토토
사용할 S2K 알고리즘.
값 :
0- 소금없이.
1- 소금이 있지만 고정 된 반복 카운트.
3- 가변 반복 카운트.
기본값 : 3
적용 : pgp_sym_en범퍼카 토토
사용할 S2K 알고리즘의 반복 수. 1024와 65011712 사이의 값이어야합니다.
기본값 : 65536과 253952 사이의 임의 값
적용 : pgp_sym_en범퍼카 토토, s2k-mode = 3
S2K 계산에 사용할 수있는 여러분 알고리즘.
값 : MD5, SHA1
기본값 : SHA1
적용 : pgp_sym_en범퍼카 토토
별도의 세션 키를 범퍼카 토토하는 데 사용할 암호.
값 : BF, AES, AES128, AES192, AES256
기본값 : Cipher-Algo 사용
적용 : pgp_sym_en범퍼카 토토
텍스트 데이터를 데이터베이스 내부 인코딩에서 UTF-8 및 뒤로 변환할지 여부. 데이터베이스가 이미 UTF-8 인 경우 변환이 수행되지 않지만 메시지는 UTF-8으로 태그됩니다.
값 : 0, 1
기본값 : 0
적용 : pgp_sym_en범퍼카 토토, pgp_pub_en범퍼카 토토
새로운 키를 생성하려면 :
gpg-gen-key
선호하는 키 유형은입니다.“DSA 및 ELGAMAL”.
RSA 범퍼카 토토의 경우 DSA 또는 RSA 부호 전용 키를 마스터로 생성 한 다음 RSA 범퍼카 토토 서브 키를 추가해야합니다gpg -Edit-Key
.
열쇠를 나열하려면 :
gpg-list-secret-keys
ascii-Armor 형식으로 공개 키를 내보내려면 :
gpg -a -export keyid> public.key
Ascii-Armor 형식으로 비밀 키를 내보내려면 :
gpg -a -export-secret-keys keyid> Secret.key
사용해야dearmor ()
이 키에서 PGP 함수에 제공하기 전에. 또는 이진 데이터를 처리 할 수 있으면 삭제할 수 있습니다-a
명령에서.
자세한 내용은 참조Man GPG
, GNU 개인 정보 핸드북및 기타 문서https://www.gnupg.org/.
서명에 대한 지원이 없습니다. 그것은 또한 범퍼카 토토 서브 키가 마스터 키에 속하는지 여부를 확인하지 않음을 의미합니다.
마스터 키로 범퍼카 토토 키를 지원하지 않습니다. 그러한 관행은 일반적으로 낙담하기 때문에 이것은 문제가되지 않아야합니다.
여러 하위 키에 대한 지원이 없습니다. 이것은 일반적인 관행이기 때문에 이것은 문제처럼 보일 수 있습니다.pg범퍼카 토토o
, 그러나 사용 시나리오가 다소 다르기 때문에 새로운 것을 만듭니다.
이 함수는 데이터보다 암호를 실행합니다. PGP 범퍼카 토토의 고급 기능이 없습니다.
사용자 키를 암호 키로 직접 사용합니다.
범퍼카 토토 된 데이터가 수정되었는지 확인하기 위해 무결성 검사를 제공하지 않습니다.
사용자는 모든 범퍼카 토토 매개 변수 자체를 관리 할 것으로 예상합니다. IV.
텍스트를 처리하지 않습니다.
따라서 PGP 범퍼카 토토의 도입으로 원시 범퍼카 토토 기능의 사용이 권장되지 않습니다.
Encrypt (Data Bytea, Key Bytea, type toint)는 Bytea를 반환합니다
|타입
. 의 구문타입
문자열은 :
알고리즘
[-
모드
] [/pad :
패딩
]
여기서알고리즘
중 하나입니다.
BF
- Blowfish
AES
-AES (Rijndael -128, -192 또는 -256)
및모드
중 하나입니다.
CBC
- 다음 블록은 이전 (기본값)에 따라 다릅니다.
ECB
- 각 블록은 별도로 범퍼카 토토됩니다 (테스트 만 해당)
및패딩
중 하나입니다.
PKCS
- 데이터는 길이 (기본값) 일 수 있습니다
없음
- 데이터는 암호 블록 크기의 배수 여야합니다
예를 들어, 이들은 다음과 같습니다.
범퍼카 토토 (데이터, 'fooz', 'bf')
inEn범퍼카 토토_iv
및de범퍼카 토토_iv
,IV
매개 변수는 CBC 모드의 초기 값입니다. ECB에 대해서는 무시됩니다.
gen_random_bytes (count integer)를 반환합니다
반환count
암호적으로 강한 무작위 바이트. 최대 1024 바이트는 한 번에 추출 될 수 있습니다.
gen_random_uuid () returns uuid
버전 4 (랜덤) UUID를 반환합니다.
pg범퍼카 토토o
주요 PostgreSQL의 결과에 따라 자체적으로 구성구성
스크립트. 영향을 미치는 옵션은입니다.-with-zlib
및-with-OpensSL
.
Zlib로 컴파일 된 경우 PGP 범퍼카 토토 기능은 범퍼카 토토하기 전에 데이터를 압축 할 수 있습니다.
OpenSSL로 컴파일하면 더 많은 알고리즘이 있습니다. 또한 OpenSSL이 더 최적화 된 Bignum 함수를 가지고 있기 때문에 공개 키 범퍼카 토토 기능이 더 빠릅니다.
표 F.19. OpenSSL이 있거나없는 기능 요약
기능 | 내장 | with OpenSSL |
---|---|---|
MD5 | 예 | 예 |
SHA1 | 예 | 예 |
SHA224/256/384/512 | 예 | 예 |
다른 다이제스트 알고리즘 | 아니오 | 예 (참고 1) |
Blowfish | 예 | 예 |
AES | 예 | 예 |
des/3des/cast5 | 아니오 | 예 |
원시 범퍼카 토토 | 예 | 예 |
PGP 대칭 범퍼카 토토 | 예 | 예 |
PGP Public-Key 범퍼카 토토 | 예 | 예 |
OpenSSL3.0.0 이상 버전에서 레거시 제공 업체는에서 활성화되어야합니다.openssl.cnf
des 또는 blowfish와 같은 오래된 암호를 사용하기위한 구성 파일
참고 :
모든 다이제스트 알고리즘 OpenSSL 지원이 자동으로 선택됩니다. 이것은 암호로는 불가능하며 명시 적으로 지원되어야합니다.
SQL의 표준과 마찬가지로, 인수 중 어느 것이면 모든 기능은 NULL을 반환합니다. 이것은 부주의 한 사용에 대한 보안 위험을 초래할 수 있습니다.
allpg범퍼카 토토o
함수는 데이터베이스 서버 내부에서 실행됩니다. 즉, 모든 데이터와 암호가 사이에 이동한다는 것을 의미합니다.pg범퍼카 토토o
및 클라이언트 응용 프로그램은 명확한 텍스트입니다. 따라서 당신은해야합니다 :
로컬로 연결하거나 SSL 연결을 사용하십시오.
시스템 및 데이터베이스 관리자를 모두 신뢰합니다.
할 수 없다면 클라이언트 애플리케이션 내부에서 범퍼카 토토하는 것이 좋습니다.
구현은 저항하지 않습니다사이드 채널 공격. 예를 들어, A에 필요한 시간pg범퍼카 토토o
완료하는 암호 해독 함수는 주어진 크기의 암호 텍스트마다 다릅니다.
https://www.gnupg.org/gph/en/manual.html
GNU 개인 정보 핸드북.
https://www.openwall.com/crypt/
암호-블로우 피쉬 알고리즘을 설명합니다.
https://www.iusmentis.com/security/passphrasefaq/
좋은 비밀번호를 선택하는 방법.
http://world.std.com/~reinhold/diceware.html
암호 선택에 대한 흥미로운 아이디어.
http://www.interhack.net/people/cmcurtin/snake-oil-faq.html
좋은 범퍼카 토토와 나쁜 범퍼카 토토를 설명합니다.
Marko Kreen<markokr@gmail.com
pg범퍼카 토토o
다음 소스에서 코드를 사용합니다.
알고리즘 | 저자 | 소스 원점 |
---|---|---|
des crypt | David Burren 및 기타 | freebsd lib범퍼카 토토 |
md5 범퍼카 토토 | Poul-Henning Kamp | freebsd lib범퍼카 토토 |
Blowfish Crypt | Solar Designer | www.openwall.com |
Blowfish Cipher | Simon Tatham | 퍼티 |
Rijndael Cipher | Brian Gladman | OpenBSD SYS/범퍼카 토토O |
MD5 HASH 및 SHA1 | 넓은 프로젝트 | Kame Kame/Sys/Crypto |
SHA256/384/512 | Aaron D. Gifford | OpenBSD SYS/범퍼카 토토O |
Bignum Math | Michael J. Fromberger | dartmouth.edu/~sting/sw/imath |