<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://charlesreid1.com/w/index.php?action=history&amp;feed=atom&amp;title=RSA</id>
	<title>RSA - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://charlesreid1.com/w/index.php?action=history&amp;feed=atom&amp;title=RSA"/>
	<link rel="alternate" type="text/html" href="https://charlesreid1.com/w/index.php?title=RSA&amp;action=history"/>
	<updated>2026-06-20T15:54:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.12</generator>
	<entry>
		<id>https://charlesreid1.com/w/index.php?title=RSA&amp;diff=30702&amp;oldid=prev</id>
		<title>Admin: Create RSA page with Python key generation, encryption, decryption, and signing examples (via create-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://charlesreid1.com/w/index.php?title=RSA&amp;diff=30702&amp;oldid=prev"/>
		<updated>2026-06-20T03:48:19Z</updated>

		<summary type="html">&lt;p&gt;Create RSA page with Python key generation, encryption, decryption, and signing examples (via create-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;![CDATA[from Crypto.PublicKey import RSA&lt;br /&gt;
from Crypto.Signature import pkcs1_15&lt;br /&gt;
from Crypto.Hash import SHA256&lt;br /&gt;
from Crypto.Cipher import PKCS1_OAEP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def generate_keys(bits=2048):&lt;br /&gt;
    key_pair = RSA.generate(bits)&lt;br /&gt;
    return key_pair.export_key(), key_pair.publickey().export_key()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def encrypt(plaintext, public_key_pem):&lt;br /&gt;
    recipient_key = RSA.import_key(public_key_pem)&lt;br /&gt;
    cipher_rsa = PKCS1_OAEP.new(recipient_key)&lt;br /&gt;
    return cipher_rsa.encrypt(plaintext.encode(&amp;#039;utf-8&amp;#039;))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def decrypt(ciphertext, private_key_pem):&lt;br /&gt;
    private_key = RSA.import_key(private_key_pem)&lt;br /&gt;
    cipher_rsa = PKCS1_OAEP.new(private_key)&lt;br /&gt;
    return cipher_rsa.decrypt(ciphertext).decode(&amp;#039;utf-8&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def sign(message, private_key_pem):&lt;br /&gt;
    private_key = RSA.import_key(private_key_pem)&lt;br /&gt;
    h = SHA256.new(message.encode(&amp;#039;utf-8&amp;#039;))&lt;br /&gt;
    return pkcs1_15.new(private_key).sign(h)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def verify(message, signature, public_key_pem):&lt;br /&gt;
    public_key = RSA.import_key(public_key_pem)&lt;br /&gt;
    h = SHA256.new(message.encode(&amp;#039;utf-8&amp;#039;))&lt;br /&gt;
    try:&lt;br /&gt;
        pkcs1_15.new(public_key).verify(h, signature)&lt;br /&gt;
        return True&lt;br /&gt;
    except (ValueError, TypeError):&lt;br /&gt;
        return False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;#039;__main__&amp;#039;:&lt;br /&gt;
    private_key, public_key = generate_keys()&lt;br /&gt;
&lt;br /&gt;
    text = &amp;quot;This is a test&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ciphertext = encrypt(text, public_key)&lt;br /&gt;
    plaintext = decrypt(ciphertext, private_key)&lt;br /&gt;
    print(&amp;quot;Plaintext was &amp;#039;%s&amp;#039;&amp;quot; % plaintext)&lt;br /&gt;
&lt;br /&gt;
    signature = sign(text, private_key)&lt;br /&gt;
    valid = verify(text, signature, public_key)&lt;br /&gt;
    print(&amp;quot;Signature valid: %s&amp;quot; % valid)&lt;br /&gt;
&lt;br /&gt;
    tampered = verify(&amp;quot;Tampered message&amp;quot;, signature, public_key)&lt;br /&gt;
    print(&amp;quot;Tampered signature valid: %s&amp;quot; % tampered)&lt;br /&gt;
&lt;br /&gt;
https://www.reddit.com/r/cryptography/comments/4yu7mh/code_review_of_aes_implementation_in_python/&lt;br /&gt;
&lt;br /&gt;
{{CryptoFlag}}&lt;br /&gt;
&lt;br /&gt;
{{PythonFlag}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
[[Category:Encryption]]&lt;br /&gt;
[[Category:Asymmetric Cryptography]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>