Asp.net,C\#순수 디지털 암호 화 복호화 문자열 을 분석 하 는 응용

네티즌 질문:Asp.net,C\#암호 화 복호화 문자열 의 사용 에 대한 자세 한 설명
image
즉,암호 화 된 데 이 터 는 더 이상 N8lAaHMFtSAQgaf 3+RUFng==이 아 닙 니 다.
image   
희망 encryptedString 은"120387789370480938408483492384028934..."입 니 다.
물론 위의 숫자 는 내 가 마음대로 두 드 린 것 이다.
그렇다면 어떻게 순수 숫자 를 실현 할 수 있 을 까?
생각 은 간단 하 다.문 자 를 Ascll 코드 로 바 꾸 면 된다.예 를 들 어 a:97,=:61;
그러면 encryptedString 은 9781 61 33 44 55...
근 데 합치 면 978161334455 가 돼 요.
질문 이 왔 습 니 다.97 이 9,7 이 아니 라 a 라 는 것 을 어떻게 알 았 습 니까?
컴퓨터 가 바 이 너 리 표시 라 는 것 을 알 고 있다 면 97 을 0,1 로 바 꿀 수 있다 는 것 을 생각 할 수 있 을 것 이다.
위의 숫자 는 0001 0011 011111 001 이 될 수 있 습 니 다.
OK,우 리 는 아직 2,3,4,5,6,7,8,9 가 있어 서 사용 하지 않 았 기 때문에 임의의 문자 로 구분 할 수 있 습 니 다.
예 를 들 어 위의 숫자 를 0001,2,0011,2,011,2,111,2,001.
물론 위 에 숫자 인 코딩 을 완성 할 수 있 지만 3,4,5,6,7,8,9 가 낭비 되 었 습 니 다.
그래서 여기 서 우 리 는 2 진 을 선택 하지 말고 9 진 을 선택 하 는 것 이 좋다.뭐?9 진법?
네,9 진법:0,1,2,3,4,5,6,7,8,10.그 중에서 10 은 9 를 대표 하고 9 는 구분자 로 합 니 다.
안 타 깝 게 도 C\#코드 는 9 진법 을 지원 하지 않 기 때문에 8 진법 을 편리 하 게 선택 했다.
코드 는 다음 과 같 습 니 다.

/// <summary>
        ///
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string ConvertStringToNumbers(string value)
        {
            StringBuilder sb = new StringBuilder();

            foreach (char c in value)
            {
                int cAscil = (int)c;
                sb.Append(Convert.ToString(c, 8) + "9");
            }

            return sb.ToString();
        }

string encryptedNumberString = ConvertStringToNumbers(encryptedString);

encryptedNumberString =11697091549101914191109115910691649123

91019121914791419146963953912291259106915691479759759

이 되 었 습 니 다.성공 적 으로 구분 되 었 습 니 다.나머지 는 이 숫자 로 구 성 된 문자열 에서 문 자 를 다시 추출 하 는 것 입 니 다.
코드 는 다음 과 같 습 니 다:

/// <summary>
        ///
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private static string ConvertNumbersToString(string value)
        {
            string[] splitInt = value.Split(new char[] { '9' }, StringSplitOptions.RemoveEmptyEntries);

            var splitChars = splitInt.Select(s => Convert.ToChar(
                                              Convert.ToInt32(s, 8)
                                            ).ToString());

            return string.Join("", splitChars);
        }

결 과 는 다음 과 같 습 니 다.
image  
나머지 는 독자 가 발휘 해서...

좋은 웹페이지 즐겨찾기