Используйте swapcase :
s = 'abc'
result = dict(zip(s + s.swapcase(), s.swapcase() + s))
print(result)
Выход
{'C': 'c', 'b': 'B', 'B': 'b', 'a': 'A', 'A': 'a', 'c': 'C'}
Я сделал некоторые успехи на этом. Если я использую Сеть:: библиотека SSH, я могу сделать это:
Net::SSH::KeyFactory.load_private_key 'keyfile', 'passphrase'
Путем чтения исходного кода я должен все же выяснить то, что библиотека делает к PKey OpenSSL:: RSA.new для выполнения этого... И затем я иду и тестирую снова, и конечно же, OpenSSL может открыть закрытый ключ очень хорошо без Сети:: SSH... Я сделал так много тестами, что так или иначе я не протестировал это правильно прежде.
Но у меня все еще есть проблема создания совместимой пары ключей SSH..., и возможно я пойду тест снова и иметь ответ :P... nah, я не то, который заинтересовал той частью
Согласно сообщению в блоге здесь:
http://stuff-things.net/2008/02/05/encrypting-lots-of-sensitive-data-with-ruby- on-rails /
Вы можете просто сделать:
OpenSSL :: PKey :: RSA.new (File.read ('private_key'), 'passphrase')
Удачи.