学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
sample_tender: { “Contractor” : “#001”, “Bid”: 10000 }
`
一、分析
查看密钥文件确定加密为RSA加密,使用两种填充方式OAEP和PKCS1v15,所以要对JSON文件进行加密之后并转换为base64格式进行竞标,使用openssl进行加密
二、过程
import json
import base64
import subprocess
rsa_file = 'rsa.cert'
public_key = 'public\_key.pem'
def encrypt\_tender(data, public_key_path, padding_mode):
encrypt_command = f"echo -n '{data}' | openssl pkeyutl -encrypt -pubin -inkey {public\_key\_path} -pkeyopt rsa\_padding\_mode:{padding\_mode}"
try:
encrypted_data = subprocess.check\_output(encrypt_command, shell=True, stderr=subprocess.STDOUT)
return base64.b64encode(encrypted_data).decode()
except subprocess.CalledProcessError as e:
return e.output.decode()
extract_command = f"openssl x509 -pubkey -noout -in {rsa\_file} > {public\_key}"
subprocess.run(extract_command, shell=True, check=True)
sample_tender_data = {
"Contractor": "#001",
"Bid": 10000
}
data = json.dumps(sample_tender_data)
encrypted_oaep = encrypt\_tender(data, public_key, 'oaep')
print("Encrypted data with OAEP padding:", encrypted_oaep)
encrypted_pkcs1v15 = encrypt\_tender(data, public_key, 'pkcs1')
print("Encrypted data with PKCS1v15 padding:", encrypted_pkcs1v15)
尝试使用OAEP填充的结果
写在最后
在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。
需要完整版PDF学习资源私我
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!