Rumah  >  Soal Jawab  >  teks badan

java - 如何设计带时间限制的激活码?

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

PHP中文网PHP中文网2740 hari yang lalu1796

membalas semua(13)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:31:43

    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

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:31:43

    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.

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:31:43

    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.

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:31:43

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

    balas
    0
  • 高洛峰

    高洛峰2017-04-18 10:31:43

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

    balas
    0
  • PHP中文网

    PHP中文网2017-04-18 10:31:43

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

    balas
    0
  • 怪我咯

    怪我咯2017-04-18 10:31:43

    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

    balas
    0
  • 黄舟

    黄舟2017-04-18 10:31:43

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

    balas
    0
  • 黄舟

    黄舟2017-04-18 10:31:43

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

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:31:43

    Letakkannya dalam redis dan tetapkan masa tamat tempoh. . .

    balas
    0
  • Batalbalas