能否在Google Colab上使用OpenSSL实现各类常用密码学功能?
Google Colab完全可以实现与本地OpenSSL完全一致的使用效果,Colab底层基于Ubuntu Linux发行版,可直接调用系统原生OpenSSL工具,所有运算逻辑、输出格式和本地OpenSSL环境无任何差异。
1 环境准备
Colab默认已预装OpenSSL,执行以下命令验证版本即可:
!openssl version
若环境异常无OpenSSL,执行以下命令安装:
!apt update && apt install -y openssl
注:Colab Notebook中执行Shell命令需在命令前加!前缀
2 常用密码学操作示例
所有操作输出的文件均默认存储在Colab临时存储空间,实例关闭后会自动清除,重要数据需及时导出。
2.1 生成RSA密钥对
- 生成2048位无加密RSA私钥(PEM格式):
!openssl genrsa -out rsa_private_key.pem 2048
- 从私钥导出对应公钥:
!openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
- 若需生成带AES256加密保护的私钥,使用以下命令,执行时按提示输入密码即可:
!openssl genrsa -aes256 -out encrypted_rsa_private.pem 2048
2.2 公钥加密/私钥解密
适用于小体积内容加密,大体积内容建议搭配对称加密使用。
- 先创建测试明文文件:
!echo "测试明文内容:abc123!@#" > plaintext.txt
- 使用RSA公钥加密明文,输出密文文件:
!openssl rsautl -encrypt -pubin -inkey rsa_public_key.pem -in plaintext.txt -out ciphertext.bin
- 使用RSA私钥解密密文:
!openssl rsautl -decrypt -inkey rsa_private_key.pem -in ciphertext.bin -out decrypted.txt
- 验证解密结果:
!cat decrypted.txt
2.3 哈希运算
支持MD5、SHA1、SHA256、SHA512等所有OpenSSL支持的哈希算法,以下为SHA256示例:
- 对字符串做哈希计算:
!echo -n "待哈希的测试消息" | openssl dgst -sha256
- 对文件做哈希计算:
!openssl dgst -sha256 plaintext.txt
2.4 文件签名与验签(SHA256+RSA)
- 使用RSA私钥对文件生成签名:
!openssl dgst -sha256 -sign rsa_private_key.pem -out signature.bin plaintext.txt
- 使用RSA公钥验证签名:
!openssl dgst -sha256 -verify rsa_public_key.pem -signature signature.bin plaintext.txt
验证通过会输出Verified OK,内容篡改或密钥不匹配会输出Verification Failure。
2.5 创建自签名证书及使用
- 一键生成证书签名请求(CSR)和对应私钥(无交互模式):
!openssl req -newkey rsa:2048 -nodes -keyout cert_private.key -out cert_request.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=TestOrganization/OU=TestUnit/CN=test.example.com"
- 生成有效期365天的自签名X509证书:
!openssl x509 -req -days 365 -in cert_request.csr -signkey cert_private.key -out self_signed.crt
- 查看证书完整信息:
!openssl x509 -in self_signed.crt -text -noout
- 使用证书公钥加密内容:
!openssl rsautl -encrypt -certin -inkey self_signed.crt -in plaintext.txt -out cert_cipher.bin
内容的提问来源于stack exchange,提问作者Johan Rougé
相关产品推荐
相关产品推荐

