Rumah > Soal Jawab > teks badan
编写好了JAVA WEB,想像桌面软件那样,第一次使用的时候需要输入一个key,验证通过则能使用整个系统,否则就无法访问任何页面。
key可以包含授权使用时长,比如1个月。
没有输入正确的key,则无论访问什么url路径,都会跳转到输入key的页面(和用户的登录页面一样)
请问这该怎么实现?
阿神2017-04-18 09:58:35
Ringkasnya, terdapat dua jenis
Jana kunci berdasarkan mesin pihak lain.
Hanya laksanakan kaedah penyulitan sendiri. (Algoritma seperti algoritma ringkasan yang tidak memerlukan penyelesaian songsang adalah mencukupi)
Kemudian dapatkan perkakasan utama komputer di mana projek itu digunakan mac地址
, seperti papan induk, kad rangkaian, cakera keras, dsb., dan gunakan data ini untuk mengira nilai dalam projek , jika ia sama dengan kunci yang diisi oleh pengguna, projek rasmi akan dimulakan Jika ia berbeza, ia akan menggesa anda untuk mengisi kunci.
Mengenai cara mendapatkan maklumat perkakasan pihak lain, terpulang kepada anda Sebagai contoh, minta rakan yang mengerahkan projek untuk menghantarnya semula kepada anda, dan kemudian anda boleh menggunakan pengiraan itu untuk mengira kunci dan menghantar. ia kembali.
Anda menjana sendiri kunci dan mengedarkannya ke mana-mana.
Contohnya, bina perkhidmatan web lain, gunakan mesin ini untuk menjana kumpulan UUID
dan mengedarkannya Kemudian selepas projek dimulakan, mula-mula minta pelayan ini untuk melakukan pengesahan sama ada kunci itu wujud dan sama ada ia telah digunakan Hantar Adakah mesin tempat kunci digunakan adalah mesin yang sama seperti pengaktifan pertama? (Hanya gunakan algoritma tidak boleh balik yang sama)
Atau lebih mudah, gunakan algoritma pseudo-rawak (algoritma boleh balik Sekumpulan kunci boleh dikira berdasarkan benih, dan benih boleh dinyahkodkan untuk setiap kunci).
Nyahsulit kunci input apabila projek dimulakan dan tentukan sama ada ia adalah benih.
伊谢尔伦2017-04-18 09:58:35
Dengan syarat anda telah memberikan ini key
kepada pelanggan melalui cara lain
Sahkan sama ada akses itu menyalahi undang-undang Gunakan cookie
untuk menentukan sama ada anda telah log masuk. Jika pengesahan lebih ketat, anda juga boleh menambah beberapa ip
alamat, mac
alamat dan pengesahan kukuh yang lain. jika anda datang berdasarkan kebenaran Lagipun, pangkalan pelanggan anda mungkin bukan orang awam.
Tempoh penggunaan yang dibenarkan, anda katakan ia dikira secara bulanan, dan mungkin terdapat lebih banyak pelanggan lanjutan yang dikira pada asas setengah tahun, jadi ini diputuskan semasa menjana
Anda boleh menggunakan redis
untuk menyimpan anda Untuk key
ini, anda boleh menetapkan masa tamat tempoh Setiap kali anda melawat, anda boleh mendapatkan cookie
daripada key
(kebanyakan daripada mereka perlu disulitkan mengikut key
, anda). boleh pergi ke redis
untuk mendapatkan baki masa kebenaran
Jika anda gagal mengesahkan kunci dan mengakses mana-mana halaman, anda mesti melompat kembali ke halaman tempat anda memasukkan kunci Soalan itu mempunyai teg springmvc
, jadi anda harus tahu bahawa permintaan itu dipintas dan diproses sebelum melompat Anda Harus ada beberapa idea.
高洛峰2017-04-18 09:58:35
Saya tidak tahu bagaimana kunci anda terikat kepada pengguna. Ia mestilah pengecam unik pengguna. Pengecam unik dan kunci pengguna yang sepadan boleh disimpan dalam pangkalan data atau cache untuk menentukan sama ada pengguna mempunyai kebenaran. Bagi lompat halaman, penapis sudah memadai.
阿神2017-04-18 09:58:35
Anda boleh menjana kunci rahsia selepas berjaya melog masuk, menyimpannya dalam kuki dan menetapkan tarikh tamat tempoh kuki Sahkan setiap kali anda memuat semula halaman web Ini adalah kaedah yang agak mudah
怪我咯2017-04-18 09:58:35
Jika tiada sijil luaran yang lain, apakah perbezaan antara keperluan subjek dan "rakam status log masuk untuk tempoh masa selepas log masuk menggunakan nama pengguna dan kata laluan"?
阿神2017-04-18 09:58:35
Terima kasih atas balasan anda, tetapi saya minta maaf kerana saya hanya boleh menerima satu jawapan.