2010-04-09 4 views
0

나는이 다음 설치, 캐리지 리턴과 숨겨진으로 만들기 위해 style='display:none'을 가진 다른 텍스트 영역이있을 수 있습니다 거기에 일부 데이터라는 텍스트 영역은 다음과 같습니다데이터를 암호화 할 때 어떻게 캐리지 리턴을 유지할 수 있습니까?

<textarea id="myTextarea" onBlur="encryptMyData()"></textarea> 
<textarea name="encryptedText" style='display:none'></textarea> 

사용자는 처음에 데이터를 입력 textarea 및 해당 텍스트 영역에 포커스가 없을 때 'encryptMyData()'자바 스크립트 함수는 사용자가 첫 번째 텍스트 필드에 입력 한 내용을 가져 와서 rijndael을 사용하여 암호화 한 다음 encryptedText 텍스트 영역에 붙여 넣기 위해 ajax 호출을 호출합니다. 나중에 데이터베이스.

이제 내가해야 할 일은 암호화 이전에 캐리지 리턴을 [cr]과 같은 태그로 변환하여 데이터를 검색 할 때 모든 서식이 유지되도록하는 방법입니다. 내가 어떻게 이런 짓을 한거야? 나는 암호화를 수행 asp.net 및 C#을 사용하고 있습니다.

+0

잘 모르겠습니다. 암호화 된 데이터가 일반 텍스트 데이터와 동일한 형식으로 나타나길 원하십니까? –

+1

C#으로 암호화 방법 코드를 게시 할 수 있습니까? 암호화하기 전에 간단한 문자열 만 바꾸면된다고 생각합니다. –

답변

2

개행 문자가 암호화 된 데이터에 여전히 존재할 가능성이 있습니다.

줄 바꿈을 사용하여 암호화 된 데이터를 "표시"하려면 stringData.Split(Environment.NewLine)을 수행하고 각각의 결과 문자열을 별도로 암호화 한 다음 String.Join(Environment.NewLine, arrayOfEncryptedDataLines) 문자열을 다시 웹 페이지로 돌아 가기 전에 암호화해야합니다.

-edit-

당신은하지만, 서버에서 않을 나을 수 있습니다. 당신이 웹 서비스를 호출 전에 변환 을 수행해야하므로, 기본적으로 서비스에 AJAX 호출이 아마 새로운 라인을 제거한다 http://www.hanewin.net/encrypt/aes/aes.htm

+0

나는 클라이언트 측 코드에서 보안 관련 (암호화 텍스트가있는 것처럼 보임) 작업을 신경 쓰지 않을 것입니다. 그럼에도 불구하고 위대한 링크, 그리고 반점의 나머지와 자리. – Dathan

0

에서보세요.

// assuming sometext contains the contents of myTextarea 
// Perform a global replace for all occurrences of a new line with [CR]: 
sometext = sometext.replace(/\n/g, "[CR]"); 

그런 다음이 아니라 텍스트 영역의 직선 값보다, 아약스 호출에 sometext 통과 : 당신이 그것을 서버를 보내기 전에 encryptMyData 기능에

는 교체 수행합니다.

관련 문제