전자 상거래 사이트의 결제 페이지에서 작업하고 있습니다. 해당 사이트에서 사람들은 신용 카드 정보를 입력하고 AES 암호화 형식으로 주문에 저장됩니다. 지원 한 모든 것이 비자 였을 때 이것은 효과가있었습니다. MasterCard 및 Discover (16 자리 숫자)를 지원하기 때문에 더 이상 작동하지 않습니다. 삽입 쿼리는 다음과 같습니다 아무 소용AES, MySql 및 두통
"insert into order_master (ccnum, ...) values (AES_ENCRYPT(:ccnum, 'password')..)";
모두 :
"insert into order_master set ccnum = AES_ENCRYPT(:ccnum, 'password') ...";
내가 또한 다른 형식을 시도했다. 누군가 내가 옳은 방향으로 나를 잘못 가르치려고 할 수 있었습니까? 나는 지금까지 엔트리 쿼리가 침투되어 값이 올바르게 삽입되었는지 확인했다. 꽤 실망스럽고 누군가 나를 도와 줄 수 있기를 바라고 있습니다. 감사! 난 당신의 SQL을하지만 mysql documentation에서 잘못된 anyting이 표시되지 않는
마스터 카드와 디스커버리 카드의 16 자리 문자열을 암호화하려고 할 때, 데이터베이스에 삽입 된 값은 값을 얻기 위해 AES_decrypt를 할 수 있기 때문에 ecrypted "null"값입니다. –
마스터 카드/디스커버리 카가 입력 될 때, 관련없는 [MySQL에] 이유 때문에 : ccnum 값이 null/bogus 일 수 있습니까? (Garbage in -> Garbage out ...) – mjv
부정적인 점은, 불행히도 준비된 쿼리가 유효한 데이터로 올바르게 포맷되었음을 확인했습니다. –