2012-08-07 8 views
1

최근 ColdFusion 9를 사용하는 회사의 웹 사이트를 보았습니다. ColdFusion 암호화/암호 해독 기능을 사용하고 있습니다. 해독 한 특정 문자열에서 나는 이상한 특수 문자가 표시됩니다.Coldfusion 암호화/암호 해독 문제

예 :

MK/_0 < --- 암호화 된 문자열 출력

�#5&z < --- 해독 문자열 출력

내가 왜 이런 일 확인 (및 특정 문자열을 아니에요 암호 해독).

<cfset ccNum = decrypt(getCCInfo.CUST_CARDNUMBER,myKey)> 
+8

코드 샘플하시기 바랍니다 : 여기에

는 문자열이 어떻게 표시 될지 예입니다. 자신이하는 일을 모른 채 잘못 된 것을 말하기는 어렵습니다. 인코딩 문제 일 가능성이 높습니다. –

+0

내 코드는 다음과 같습니다.

+0

코드를 포함하도록 원래 질문을 편집했습니다. 포함 된 위치에서 답변을 삭제할 수 있습니다. 나중에 참조 할 수 있도록 StackOverflow는 여러분이나 다른 사람들이 질을 높이기 위해 질문이나 답변을 편집하고 편집 할 수있게 해주는 위키입니다. –

답변

2

좋아, 잘 첫째, 내가 암호화 알고리즘을 지정하지 않음으로써 당신은 매우 가난한 암호화를 사용하고 있음을 지적하고있다 : 여기

는 코드입니다. 따라서이를 고쳐야합니다. 둘째, 암호화 저장소를보다 안정적으로 만들기 위해 일부 인코딩을 사용해야합니다.

이 코드를 사용해보십시오.

<cfset key = generateSecretKey("AES") /> 

<!--- Set the ciphertext to a variable. This is the string you will store for later deciphering ---> 
<cfset cipherText = encrypt(plaintext, key, "AES/CBC/PKCS5Padding", "HEX") /> 

<cfoutput>#cipherText#</cfoutput> 

<!--- Then when you decrypt ---> 

<cfset decipherText = decrypt(cipherText, key, "AES/CBC/PKCS5Padding", "HEX") /> 

<cfoutput>#decipherText#</cfoutput> 

위의 코드는 강력한 암호화 알고리즘을 사용하고 위의 예로서 보여 횡설수설보다 저장 형식으로 훨씬 쉽게로 암호문을 넣어 것입니다. 그런 식으로 저장하면 다시 검색 할 때 더 안정적입니다. ,

A51BBB284D6DCCDC17D26FB481584236087C3AB272918E17963BAF749438C06A484922820EDCCD25150732CC5CF8A096 
+0

답장을 보내 주셔서 감사 드리며 원본 게시물을 편집 해 주셔서 감사합니다. Im이 실제로이 사이트에 게시 한 것은 처음이지만 어쨌든 코드를 시도한 결과이 coldfusion 오류가 발생합니다. "입력 문자열을 암호화하거나 해독하려고 시도하는 동안 오류가 발생했습니다 : ''문자열을 디코딩 할 수 없습니다. 'testKey! $ @ ".." 이제 테스트 키를 추가하고 간단한 문자열 암호화 및 암호 해독에 지쳤습니다. 오류가 발생했습니다. 예제의 암호화 형식이 사용하고있는 것과 다른가요? 도움을 주셔서 다시 한 번 감사드립니다. –

+0

AES 키는 정확한 길이 여야합니다. 이 경우에는 128 비트입니다. 거기에 어떤 문자열도 던져 넣을 수 없습니다. –

+0

테스트 키를 생성하려면 generateSecretKeyMethod()를 사용할 수 있습니다. 내가 포함하도록 내 게시물을 수정합니다. –