문제

우리는 상황에서 우리의 제품에 대한 오랜 시간이 어떤 데이터가 저장되어 어플리케이션의 데이터베이스에 SQL 문자열(의 선택 MS SQL server 또는 sybase SQL 어디에서든)어떤 암호화를 통해 Windows API 함수 CryptEncrypt. (직접 및 de-cryptable)

문제는 CryptEncrypt 을 생산할 수 있 NULL 의 출력에서 의미하는 경우 그것은 데이터베이스에 저장된 문자열 조작이 어떤 시점에서 잘라내는 암호문.

이상적으로 우리는 사용하려 algo 를 생성하는 암호문을 포함하지 않는 Null 을 일으킬 것입니다 적어도의 변화량을 기존 데이터베이스(을 변경하에서 열 문자열을 바이너리 코드를 다루 대신 바이너리의 문자열)고 해독하는 기존 데이터를 다시 암호화하는 새로운 알고리즘에서 데이터베이스로 업그레이드 시간입니다.

알고리즘을 필요가 없는 가장 안전하고,데이터베이스로가 이미에서 합리적으로 안전한 환경(하지 않는 개방형 네트워크/inter-줄)해야 보다 더 나은 것을 ROT13(수 있는 거의 암호 해독에 내 머리에 지금이다!)

편집:btw,어떤 특정 이유에 대한 변화하는 암호문을 cyphertext?암호문에 보인 널리 사용되...

도움이 되었습니까?

해결책

어떤 반 괜찮은 알고리즘으로 끝날 것이다 강력한 기회를 생성하는 NULL 값이 어딘가에서 결과 암호.

왜 같은 뭔가 base64 인코딩 의 결과 바이너리 blob 하기 전에 유지 DB?(샘플한 구현에서는 C++).

다른 팁

저장 해시는 것이 좋습니다.그러나,주의하십시 확실히 읽 Jeff 당신은 아마 암호를 저장하는 잘못.

는 흥미로운 경로를 OJ.우리가 찾고있 feasability non-위치가 방법(아직도 우리는 확실하지 않으로 명시적으로 데이터를 검색을 해독하는)등저장 해당을 비교에 제출

그것은 개발자 취급이 가을 감싸는 기존의 암호화 yEnc 을 보존하는 테이블에 무결성으로 필요한 데이터를 검색할 수 없도록,그리고 이를 저장하는 모든 지저분한 분 infinite-improbab....뭐 변화 열 종류에 둘러싸여 설치합니다.들의 환호

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top