java - 如何设计带时间限制的激活码?
PHP中文网
PHP中文网 2017-04-18 10:29:43
0
13
1854

我做了个软件,想用激活码方式授权,有些只想授权1个星期,光是授权的话,用MD5做加密的,但是怎么让激活码带着授权时间让程序识别呢?
请教大神们

PHP中文网
PHP中文网

认证0级讲师

membalas semua(13)
Ty80

Jangan fikir untuk memasang klien Jika anda menukar masa komputer, program akan tamat. Adalah disyorkan untuk meletakkannya di bahagian pelayan untuk pengesahan Semasa memulakan, gunakan HTTP untuk mengesahkan sama ada ia telah tamat tempoh di bahagian pelayan

Ty80

Ia sangat mudah,
1. Pertama, gunakan pelayan untuk mengesahkan kesahihan kod kebenaran
2 , maka MD5 anda boleh digunakan MD5(authCode+dateformart(new Date(),"yyyymm")), dengan cara ini, MD5 yang dijana oleh kod kebenaran anda akan sama dalam masa sebulan, iaitu, kod kebenaran adalah sah. Sila ambil perhatian bahawa ia mesti disahkan oleh pelayan, dan masa mesti diambil pada masa pelayan; salt+authCode+dateformart(new Date(), "yyyymm"))), jadi pada dasarnya adalah mustahil untuk memecahkannya Jika anda menggunakan garam, anda boleh menjana pembolehubah rawak untuk setiap authCode dan menyimpannya pada pelayan.

洪涛

Terdapat banyak kaedah untuk ini, tetapi tiada jaminan bahawa ia tidak akan retak.

Ringkasnya, anda boleh menambah maklumat masa pada kod pengesahan.
Sebagai contoh, jika tempoh sah yang anda perlukan ialah 7 hari, maka anda boleh menggunakan tarikh hari anda menjana kod pengesahan sebagai faktor untuk menjana kod pengesahan.
Apabila program anda melakukan pengesahan, dapatkan tarikh semasa dan tolak ke hadapan enam hari, selama 7 hari, dan jana 7 kod pengesahan dengan cara yang sama untuk pengesahan. Jika salah satu daripadanya betul, bermakna ia belum tamat tempoh.

大家讲道理

Bukankah anda juga menggunakan satu nombor untuk mengira MD5 anda? Tidakkah cukup dengan hanya menambah maklumat masa?

小葫芦

Jika anda tidak mahu dipecahkan, anda hanya boleh meletakkannya di pelayan saya boleh memberikan anda perkhidmatan back-end percuma, haha

洪涛

Kaedah yang paling mudah ialah menyimpan kod pengaktifan + tarikh yang disulitkan md5 anda dalam pangkalan data Sudah tentu, kod pengaktifan tidak boleh diulang

刘奇

Jika anda menggunakan penyulitan md5, anda tidak boleh meletakkan tarikh dalam rentetan yang disulitkan atau teks biasa yang disulitkan untuk tarikh tersebut. Jika anda tidak mahu dipecahkan, gunakan pengesahan pelayan

黄舟

Anda boleh mereka bentuk struktur data seperti ini: {'a':'Kod pengesahan','b':'Masa tamat tempoh (tempoh masa sejak 1970)'}, dan kemudian menyulitkan rentetan.

黄舟

Lebih mudah untuk melakukannya di bahagian pelayan Terdapat tiga medan di bahagian pelayan, masa tamat tempoh dan sama ada pelanggan hanya perlu mengetahui kunci

左手右手慢动作

Letakkannya dalam redis dan tetapkan masa tamat tempoh. . .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan