나는 암호화 된 텍스트를 기반으로 사용자에게 몇 가지 정보를 보여줄 프로젝트에서 작업하고 있습니다.위치를 고려하는 대체 암호
나는 암호를 이미 알고있다. 나는 그것을 해독하는 법을 알고있다. 간단한 대체 암호는 알고 있지만이 경우에는 작동하지 않습니다.
코드 0-9와 0-10 만 반복되는 코드가 있습니다. 그래서 기본적으로 숫자로만 이루어진 0-10 문자의 코드입니다. 이 코드는 암호를 통해 실행되고 대문자, 비 대문자 및 숫자의 조합으로 변환됩니다.
충분히 간단하고, 아마도 다시 dechiperer를 써서 숫자로 변환 할 수있을 것입니다. 그러나 이것은 또한 코드에있는 숫자의 위치를 고려합니다.
의미 : 코드 : 1234가 Ar5Q로 변환 될 수 있지만 코드 : 4321은 간단한 대체 암호에서 예상하는 것처럼 Q5rA가 아닌 B6up으로 변환 될 수 있습니다.
누구나 그런 암호를 만드는 방법의 방향을 알려줄 수 있습니까?
그리고 보너스 질문. 테이블이나 사전에서 dechiperer를 생성 할 수 있습니까?
편집 :
코드 : 1234이 될 것이다 :
내가이 테이블이 H8o6
을H8o6는 내가받을 문자열과 디코딩이다.
나는 사전을Dictionary<KeyValuePair<string, int>, int> translator = new Dictionary<KeyValuePair<string, int>, int>();
을 만들어이 문제를 해결 그리고이 같은 사전에 모든 항목을 추가 :
translator.Add(new KeyValuePair<string, int>("N", 0), 0);
translator.Add(new KeyValuePair<string, int>("H", 0), 1);
translator.Add(new KeyValuePair<string, int>("r", 0), 2);
translator.Add(new KeyValuePair<string, int>("x", 0), 3);
translator.Add(new KeyValuePair<string, int>("Y", 0), 4);
translator.Add(new KeyValuePair<string, int>("e", 0), 5);
translator.Add(new KeyValuePair<string, int>("z", 0), 6);
translator.Add(new KeyValuePair<string, int>("t", 0), 7);
translator.Add(new KeyValuePair<string, int>("L", 0), 8);
translator.Add(new KeyValuePair<string, int>("l", 0), 9);
translator.Add(new KeyValuePair<string, int>("t", 1), 0);
translator.Add(new KeyValuePair<string, int>("I", 1), 1);
translator.Add(new KeyValuePair<string, int>("8", 1), 2);
translator.Add(new KeyValuePair<string, int>("r", 1), 3);
translator.Add(new KeyValuePair<string, int>("X", 1), 4);
translator.Add(new KeyValuePair<string, int>("K", 1), 5);
이 그냥 슈퍼 효과 느낀다. 그러나 나는 그것을 할 다른 방법에 대해 내 머리를 얻을 수 없습니다.
Marked Matts 대답.
char[] cipher = ['A','r','5','Q','T','g','6','7','u']
그리고 당신은 번호 목록 등을 인코딩하는 :하지만 실제로 내가 찾던 내가 올바르게 이해하고있어 경우에 따라서
확인 - 문자열의 위치 번호를 추가하십시오. 귀하의 질문이 무엇인지 확실하지 않습니다. 당신이이 방향으로 거의 움직이고있는 것처럼 보이기 때문에 배경을 위해 체크 아웃 할 수도 있습니다. http://en.wikipedia.org/wiki/One-time_pad –
@MattBurland 나는 정확하게 내가 말할 수 있으면 좋겠다. keyValuePair는 암호화 된 문자가있는 문자열과 코드의 위치를 나타내는 정수로 구성되며 KeyValuePair가 해당하는 숫자로 나타내는 정수를 구성합니다. 질문을 던지면 더 간단한 방법으로이를 수행 할 수 있습니까? –
좀 더 설명해 주시겠습니까? 당신이 말하는 것을 따라하기가 정말 어렵습니다. 그래서 당신은'Dictionary, int>'을 가졌습니까? 기본적으로, 각 캐릭터가 완전히 다른 암호로 암호화되도록 하시겠습니까? 일회용 패드와 다른 점이 없습니까? –