AES/RSA加密机制

Apr 04, 2017 pm 02:36 PM

在服务器与终端设备进行HTTP通讯时,常常会被网络抓包、反编译(Android APK反编译工具)等技术得到HTTP通讯接口地址和参数。为了确保信息的安全,我们采用AES+RSA组合的方式进行接口参数加密和解密。

1.关于RSA加密机制:公钥用于对数据进行加密,私钥对数据进行解密,两者不可逆。公钥和私钥是同时生成的,一一对应。比如:A拥有公钥,B拥有公钥和私钥。A将数据通过公钥进行加密后,发送密文给B,B可以通过私钥和公钥进行解密。

2.AES加密也叫对称加密:A用密码对数据进行AES加密后,B用同样的密码对密文进行AES解密。


 具体操作方法:

1.在终端中采用openssl方式输入密钥的相关属性(公司名、邮箱等),然后在终端当前所在的地址下,生成公钥和私钥共7个文件(7个文件如何使用请看附录的拓展了链接)。

2.此时假设Android客户端拥有公钥PublicKey,服务器端拥有公钥PublicKey和私钥PrivateKey。

3.安卓发送请求到服务器端:安卓随机生成Byte[]随机密码,假设RandomKey=“123456”,通过AES算法,对Json数据利用进行加密。

4.但是此刻服务器并不知道客户端的RandomKey是什么,因此需要同时将Randomkey传给服务器,否则服务器无法通过AES对Json数据进行解密。但是如果直接发送请求,Randomkey就会暴露,所以要对RandomKey进行不可逆的RSA加密。

5.安卓将使用Randomkey进行AES加密的Json数据,和使用PublicKey进行RSA加密的RandomKey通过HTTP传送到服务器端。数据请求工作完成。

6.服务器端接收到AES加密的Json数据和Rsa加密的RandomKey数据。

7.服务器通过私钥PrivateKey对加密后的RandomKey进行Rsa解密。得到安卓生成的原始Randomkey。

8.利用原始的RandomKey对加密后的Json数据进行AES对称解密。至此已经得到安卓端发过来的原始Json数据。进行常规的服务器业务操作,然后将返回数据通过安卓端的RandomKey进行AES加密gouhou后,Response返回。

9.安卓端接收到Response的数据后,利用之前本地生成的RandomKey直接进行AES解密即可。

详细的流程图可以查看下图。


AES/RSA加密机制

客户端-服务器端HTTPS数据传输流程图

注意事项

1.在实际的开发过程中,发现RSA和AES有不同的密文生成标准,会不兼容IOS。IOS在RSA算法中需要的公钥与JAVA不同。详细的解决方案请查看:

2.AES加密不可以使用超过128Byte的KEY,因为在jdk1.7以上的版本不支持超过128Byte的KEY。

小结:从性能上来测,整个客户端送加密数据开始到解密得到回传的原始数据不超过300ms(Iphone4和Centos Java服务器传输测试)。本方案没有采用TOKEN的方式,或许以后用到。公钥如何更新也需要继续完善。


Atas ialah kandungan terperinci AES/RSA加密机制. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara melaksanakan operasi penyulitan dan penyahsulitan AES dalam Java Cara melaksanakan operasi penyulitan dan penyahsulitan AES dalam Java May 08, 2023 pm 10:34 PM

1. Pengetahuan latar belakang Dalam kriptografi, algoritma penyulitan dibahagikan kepada penyulitan sehala dan penyulitan dua hala. Penyulitan simetri bermakna kunci yang sama digunakan untuk penyulitan dan penyahsulitan, termasuk penyulitan AES, penyulitan DES, dsb. Penyulitan asimetri merujuk kepada penggunaan kunci yang berbeza untuk penyulitan dan penyahsulitan, termasuk penyulitan RSA, dsb. Penyulitan sehala termasuk algoritma ringkasan seperti MD5 dan SHA, yang tidak boleh diterbalikkan. Penyulitan dua hala termasuk penyulitan simetri dan penyulitan asimetri. Penyulitan dua hala boleh diterbalikkan, dan kunci kepada teks sifir wujud. 2. Pengenalan kepada AES AES: Standard Penyulitan Lanjutan (Standard Penyulitan Lanjutan) ialah standard penyulitan blok yang diterima pakai oleh kerajaan persekutuan A.S. dan kini merupakan algoritma penyulitan simetri yang paling popular. Ia adalah algoritma penyulitan blok generasi baharu yang digunakan untuk menggantikan DES.

Gunakan Python untuk melaksanakan penyulitan dan penyahsulitan RSA Gunakan Python untuk melaksanakan penyulitan dan penyahsulitan RSA Apr 14, 2023 pm 02:13 PM

Semalam saya melihat artikel Bahasa Inggeris [1] yang menunjukkan cara menggunakan Python untuk melaksanakan algoritma RSA Logik kod adalah sama seperti artikel sebelumnya Memahami Algoritma RSA boleh membaca artikel Memahami Algoritma RSA, yang menghadapi Apa itu RSA, prinsip matematik RSA diterangkan, dan contoh mudah boleh dikatakan bahawa ini adalah artikel paling mudah untuk memahami RSA di Quanzhihu (ini datang dari komen pembaca). Saya menjalankan kod yang disediakan dalam bahasa Inggeris dan mendapati ia tidak boleh menyulitkan bahasa Cina, jadi saya mengubah suai fungsi penyulitan dan penyahsulitan untuk menyokong penyulitan dan penyahsulitan bahasa Cina. Artikel hari ini akan berkongsi cara menggunakan Python untuk melaksanakan penyulitan RSA dan proses penyahsulitan untuk membantu anda mewujudkan

Cara menggunakan PHP dan GMP untuk melaksanakan penyulitan RSA dan algoritma penyahsulitan untuk integer besar Cara menggunakan PHP dan GMP untuk melaksanakan penyulitan RSA dan algoritma penyahsulitan untuk integer besar Jul 28, 2023 pm 05:25 PM

Cara menggunakan PHP dan GMP untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA untuk integer besar Algoritma penyulitan RSA ialah algoritma penyulitan asimetri yang digunakan secara meluas dalam bidang keselamatan data. Ia melaksanakan proses penyulitan kunci awam dan penyahsulitan kunci persendirian berdasarkan dua nombor perdana yang sangat besar dan beberapa operasi matematik mudah. Dalam bahasa PHP, pengiraan integer besar boleh direalisasikan melalui perpustakaan GMP (GNUMultiplePrecision), dan fungsi penyulitan dan penyahsulitan boleh direalisasikan dengan menggabungkan algoritma RSA. Artikel ini akan memperkenalkan cara menggunakan perpustakaan PHP dan GMP untuk

Bagaimana SpringBoot melaksanakan penyahsulitan antara muka automatik RAS+AES Bagaimana SpringBoot melaksanakan penyahsulitan antara muka automatik RAS+AES May 20, 2023 pm 04:04 PM

1. Mari kita bercakap tentang klise tentang keselamatan antara muka kemalangan Sebelum Tahun Baru Cina, saya membuat permainan kecil H5 tentang pertempuran kapal terbang Dalam mod tak terhingga, mata pengguna perlu disimpan, kerana Badan yang digunakan untuk lulus parameter kelihatan. . Demi keselamatan antara muka, I Front-end dan saya bersetuju bahawa parameter yang akan diluluskan ialah: titik mod tanpa had pengguna + "nombor yang kami setujui" + jumlah id pengguna Selepas menyulitkan dengan Base64, permintaan dihantar ke pelayan dan saya menyahsulitnya untuk mendapatkan mata mod tanpa had pengguna seperti berikut: { "integral":"MTExMTM0NzY5NQ==",} Tetapi semasa Tahun Baru Cina, operasi tiba-tiba datang kepada saya dan berkata bahawa skor senarai kedudukan mata mod tak terhingga adalah salah: Ini sangat pelik, tempat kedua hanya satu

Bagaimana untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA menggunakan PHP dan GMP Bagaimana untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA menggunakan PHP dan GMP Jul 28, 2023 pm 11:54 PM

Cara menggunakan PHP dan GMP untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA Algoritma penyulitan RSA ialah algoritma penyulitan asimetri yang digunakan secara meluas dalam bidang keselamatan maklumat. Dalam aplikasi praktikal, selalunya perlu menggunakan bahasa pengaturcaraan untuk melaksanakan algoritma penyulitan dan penyahsulitan RSA. PHP ialah bahasa skrip sebelah pelayan yang biasa digunakan dan GMP (GNUMultiplePrecision) ialah perpustakaan pengiraan matematik berketepatan tinggi yang boleh membantu kami melaksanakan operasi nombor besar yang diperlukan dalam algoritma RSA. Artikel ini akan memperkenalkan cara menggunakan PHP dan GMP

Bagaimana untuk menulis algoritma penyulitan RSA menggunakan Python? Bagaimana untuk menulis algoritma penyulitan RSA menggunakan Python? Sep 20, 2023 pm 01:21 PM

Bagaimana untuk menulis algoritma penyulitan RSA menggunakan Python? Pengenalan: RSA ialah algoritma penyulitan asimetri yang digunakan secara meluas dalam bidang keselamatan maklumat. Dalam komunikasi moden, algoritma penyulitan RSA biasanya digunakan untuk menyulitkan dan menyahsulit data sensitif. Artikel ini akan memperkenalkan cara menggunakan Python untuk menulis algoritma penyulitan RSA dan memberikan contoh kod khusus. Pasang perpustakaan Python Sebelum anda mula menulis algoritma penyulitan RSA, anda perlu memasang pustaka penyulitan Python. Ia boleh dipasang menggunakan arahan berikut: pipinstallrsa generate

Penjelasan terperinci tentang teknologi penyulitan AES256 dalam PHP dan aplikasinya dalam rangka kerja Penjelasan terperinci tentang teknologi penyulitan AES256 dalam PHP dan aplikasinya dalam rangka kerja Jun 09, 2023 pm 12:25 PM

Dengan perkembangan dan popularisasi Internet, keselamatan data telah mendapat perhatian yang lebih dan lebih. Teknologi penyulitan adalah cara yang sangat berkesan semasa penghantaran dan penyimpanan data Penyulitan boleh memastikan kerahsiaan dan integriti data. Dalam PHP, teknologi penyulitan AES256 ialah kaedah penyulitan yang sangat popular Artikel ini akan memperkenalkan secara terperinci kaedah aplikasinya dalam rangka kerja. Pengenalan kepada teknologi penyulitan AES256 AES (Advanced Encryption Standard) ialah standard penyulitan lanjutan dan merupakan kaedah penyulitan popular moden.

PHP melaksanakan teknologi penyulitan asimetri RSA PHP melaksanakan teknologi penyulitan asimetri RSA Jun 18, 2023 am 09:34 AM

Teknologi penyulitan asimetri RSA ialah salah satu kaedah penyulitan yang paling popular dan selamat pada masa ini. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP juga mempunyai kelebihan unik dalam melaksanakan penyulitan RSA. Artikel ini akan memperkenalkan pembaca kepada cara menggunakan PHP untuk melaksanakan teknologi penyulitan asimetri RSA. 1. Apakah algoritma RSA? Algoritma RSA ialah teknologi penyulitan asimetri Ia biasanya digunakan untuk penyulitan data dan tandatangan digital. Keselamatannya terutamanya berdasarkan masalah teori nombor, iaitu kesukaran memfaktorkan integer yang sangat besar dalam masa yang sangat singkat. Strim disulitkan algoritma RSA

See all articles