>  Q&A  >  본문

spring - JAVA WEB 授权问题请教。

编写好了JAVA WEB,想像桌面软件那样,第一次使用的时候需要输入一个key,验证通过则能使用整个系统,否则就无法访问任何页面。

请问这该怎么实现?

PHP中文网PHP中文网2717일 전448

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

  • 阿神

    阿神2017-04-18 09:58:35

    간단히 말하면 2가지 종류가 있습니다

    1. 상대방의 컴퓨터를 기반으로 키를 생성합니다.

      암호화 방법을 직접 구현해 보세요. (역해를 요구하지 않는 요약 알고리즘 등의 알고리즘이면 충분합니다.)
      그런 다음 프로젝트가 배포되는 컴퓨터의 메인 하드웨어 mac地址(예: 마더보드, 네트워크 카드, 하드 디스크 등)를 구하고, 이 데이터를 사용하여 프로젝트 내의 값을 계산합니다. 사용자가 입력한 키와 동일하면 공식 프로젝트가 시작됩니다. 다른 경우 키를 입력하라는 메시지가 표시됩니다.
      상대방의 하드웨어 정보를 얻는 방법은 당신에게 달려 있습니다. 예를 들어 프로젝트를 배포한 동료에게 다시 보내달라고 요청한 다음 그 계산을 사용하여 키를 계산하고 보낼 수 있습니다. 다시.

    2. 키를 직접 생성하여 어디에나 배포할 수 있습니다.

      예를 들어 다른 웹 서비스를 구축하고 이 머신을 사용하여 UUID 배치를 생성하고 배포한 다음 프로젝트가 시작된 후 먼저 이 서버에 검증을 수행하도록 요청합니다. 보내기 키가 사용된 컴퓨터가 첫 번째 활성화와 동일한 컴퓨터입니까? (그냥 동일한 비가역적 알고리즘을 사용하세요)
      더 간단하게는 의사 난수 알고리즘(가역적 알고리즘)을 사용하세요. 시드를 기반으로 키 배치를 계산하고 각 키에 대해 시드를 디코딩할 수 있습니다.
      프로젝트 시작 시 입력 키를 복호화하여 시드인지 판단합니다.

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:58:35

    • 다른 방법으로 key 고객에게 제공한 경우

    • 접속이 불법인지 확인하세요. cookie를 이용해 로그인 여부를 확인하세요. 확인이 더 엄격하다면 ip 주소, mac 주소 등 강력한 인증을 추가하실 수도 있습니다. 허가를 받아 오셨다면 결국 고객층은 일반인이 아닐 것입니다.

    • 승인된 사용 기간은 월 단위로 계산한다고 하셨고, 반기 단위로 계산되는 고급 고객도 있을 수 있으니
      redis 사용하시면 됩니다. 🎜> 저장하려면 key에 대해 만료 시간을 설정할 수 있습니다. 방문할 때마다 cookie에서 key을(를) 얻을 수 있습니다(대부분은 암호화되어야 함). key에서 남은 인증 시간을 확인할 수 있습니다. redis

    • 인증 키가 어떤 페이지에도 액세스하지 못한 경우에는 키를 입력한 페이지로 다시 이동해야 합니다. 질문에

      태그가 있으므로 그 전에 요청이 차단되어 처리된다는 점을 알아야 합니다. 뛰어내리세요. 아이디어가 있으실 겁니다.springmvc

    • 회신하다
      0
  • 高洛峰

    高洛峰2017-04-18 09:58:35

    귀하의 키가 사용자에게 어떻게 바인딩되어 있는지 모르겠습니다. 사용자의 고유 식별자여야 합니다. 일치하는 사용자의 고유 식별자와 키는 데이터베이스나 캐시에 저장되어 사용자에게 권한이 있는지 확인할 수 있습니다. 페이지 점프의 경우 필터로 충분합니다.

    회신하다
    0
  • 阿神

    阿神2017-04-18 09:58:35

    로그인에 성공한 후 비밀 키를 생성하여 쿠키에 저장하고, 웹 페이지를 새로 고칠 때마다 쿠키 만료일을 설정할 수 있습니다. 이 방법은 비교적 간단합니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-04-18 09:58:35

    다른 외부 인증서가 없는 경우, 주체 요구 사항과 "사용자 이름과 비밀번호를 사용하여 로그인한 후 일정 시간 동안 로그인 상태를 기록합니다"의 차이점은 무엇인가요?

    회신하다
    0
  • 阿神

    阿神2017-04-18 09:58:35

    답변해 주셔서 감사합니다. 단, 한 가지 답변만 받아들일 수 있어 죄송합니다.

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