>  Q&A  >  본문

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

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

PHP中文网PHP中文网2740일 전1803

모든 응답(13)나는 대답할 것이다

  • PHP中文网

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

    클라이언트 설치할 생각은 하지 마세요. 컴퓨터 시간을 바꾸면 프로그램이 종료됩니다. 인증을 위해 서버측에 두는 것을 권장합니다. 시작 시 HTTP를 사용하여 서버측에서 만료되었는지 확인하세요

    회신하다
    0
  • PHP中文网

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

    매우 간단합니다.
    1. 먼저 서버를 사용하여 인증 코드의 유효성을 확인합니다.
    2. MD5 규칙은 시간을 추가하여 생성할 수 있습니다. , 그러면 MD5를 MD5(authCode+dateformart(new Date(),"yyyymm"))로 사용할 수 있습니다. 이런 방식으로 인증 코드로 생성된 MD5는 한 달 이내에 동일합니다. 즉, 인증 코드는 다음과 같습니다. 서버에서 확인해야 하며 시간이 소요됩니다.
    3. MD5 규칙은 크리덴셜 스터핑 및 크래킹을 방지하기 위해 몇 가지 레이어를 추가할 수 있습니다. salt+authCode+dateformart(new Date(), "yyyymm")))이므로 기본적으로 크랙이 불가능합니다. salt를 사용하면 authCode마다 랜덤 변수를 생성하여 서버에 저장할 수 있습니다.

    회신하다
    0
  • PHP中文网

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

    이 방법에는 여러 가지가 있지만 크랙이 발생하지 않는다는 보장은 없습니다.

    간단히 말하면 인증코드에 시간 정보를 추가할 수 있습니다.
    예를 들어 필요한 유효기간이 7일이라면 인증코드를 생성한 날짜를 기준으로 인증코드를 생성할 수 있습니다.
    프로그램 인증을 할 때 현재 날짜를 가져와서 6일 앞으로 밀고, 총 7일 동안 동일한 방법으로 인증 코드 7개를 생성하여 인증합니다. 그 중 하나가 정확하면 만료되지 않은 것입니다.

    회신하다
    0
  • 大家讲道理

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

    MD5를 계산할 때도 하나의 숫자를 사용하지 않나요? 시간 정보만 추가하면 충분하지 않을까요?

    회신하다
    0
  • 高洛峰

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

    크랙당하기 싫으시면 서버에만 올려주시면 됩니다. 무료 백엔드 서비스도 제공해드릴 수 있어요, 하하

    회신하다
    0
  • PHP中文网

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

    가장 간단한 방법은 MD5 암호화된 활성화 코드 + 날짜를 데이터베이스에 저장하는 것입니다. 물론 활성화 코드는 반복할 수 없습니다.

    회신하다
    0
  • 怪我咯

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

    md5 암호화를 사용하면 암호화된 문자열에 날짜를 넣을 수 없습니다. 크랙을 원하지 않으면 서버 인증을 사용하세요.

    회신하다
    0
  • 黄舟

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

    다음과 같이 데이터 구조를 설계할 수 있습니다: {'a':'인증 코드','b':'만료 시간(1970년 이후의 기간)'} 그런 다음 문자열을 암호화합니다.

    회신하다
    0
  • 黄舟

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

    서버 측에서 수행하는 것이 더 편리합니다. 서버 측에는 만료 시간과 사용 여부만 알면 됩니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 10:31:43

    redis에 넣고 만료 시간을 설정하세요. . .

    회신하다
    0
  • 취소회신하다