我做了个软件,想用激活码方式授权,有些只想授权1个星期,光是授权的话,用MD5做加密的,但是怎么让激活码带着授权时间让程序识别呢?
请教大神们
PHP中文网2017-04-18 10:31:43
클라이언트 설치할 생각은 하지 마세요. 컴퓨터 시간을 바꾸면 프로그램이 종료됩니다. 인증을 위해 서버측에 두는 것을 권장합니다. 시작 시 HTTP를 사용하여 서버측에서 만료되었는지 확인하세요
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마다 랜덤 변수를 생성하여 서버에 저장할 수 있습니다.
PHP中文网2017-04-18 10:31:43
이 방법에는 여러 가지가 있지만 크랙이 발생하지 않는다는 보장은 없습니다.
간단히 말하면 인증코드에 시간 정보를 추가할 수 있습니다.
예를 들어 필요한 유효기간이 7일이라면 인증코드를 생성한 날짜를 기준으로 인증코드를 생성할 수 있습니다.
프로그램 인증을 할 때 현재 날짜를 가져와서 6일 앞으로 밀고, 총 7일 동안 동일한 방법으로 인증 코드 7개를 생성하여 인증합니다. 그 중 하나가 정확하면 만료되지 않은 것입니다.
PHP中文网2017-04-18 10:31:43
가장 간단한 방법은 MD5 암호화된 활성화 코드 + 날짜를 데이터베이스에 저장하는 것입니다. 물론 활성화 코드는 반복할 수 없습니다.
黄舟2017-04-18 10:31:43
다음과 같이 데이터 구조를 설계할 수 있습니다: {'a':'인증 코드','b':'만료 시간(1970년 이후의 기간)'} 그런 다음 문자열을 암호화합니다.