ホームページ  >  に質問  >  本文

spring - JAVA WEB 授权问题请教。

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

请问这该怎么实现?

PHP中文网PHP中文网2765日前488

全員に返信(6)返信します

  • 阿神

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

    簡単に言うと2種類あります

    1. 相手のマシンに基づいてキーを生成します。

      暗号化メソッドを自分で実装するだけです。 (逆解を必要としない要約アルゴリズムなどのアルゴリズムで十分です)
      次に、プロジェクトがデプロイされているコンピューターのメイン ハードウェア (マザーボード、ネットワーク カード、ハードディスクなど) mac地址 を取得します。これらのデータを使用してプロジェクト内の値を計算します。それがユーザーが入力したキーと同じである場合、正式なプロジェクトが開始されます。異なる場合は、キーを入力するように求められます。
      相手のハードウェア情報をどうやって取得するかは、例えばプロジェクトをデプロイした仲間に送ってもらって、その計算で鍵を計算して送るだけです。それを戻します。

    2. 自分でキーを生成し、どこにでも配布します。

      たとえば、別の Web サービスを構築し、このマシンを使用して UUID のバッチを生成し、それを配布します。その後、プロジェクトが開始された後、最初にこのサーバーに検証の実行を要求します。サーバーはキーが存在するかどうかを確認します。キーが使用されたマシンは最初のアクティベーションと同じマシンですか? (同じ非可逆アルゴリズムを使用するだけです)
      または、さらに単純には、擬似ランダム アルゴリズム (可逆アルゴリズム) を使用して、シードに基づいてキーのバッチを計算し、キーごとにシードをデコードできます。
      プロジェクト開始時に入力キーを復号化し、それがシードであるかどうかを判断します。

    返事
    0
  • 伊谢尔伦

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

    • 他の手段でこの key を顧客に提供した場合に限ります

    • アクセスが違法かどうかを確認します。cookie を使用して、ログインしたかどうかを判断します。検証がより厳格な場合は、いくつかの ip アドレス、mac アドレス、その他の強力な検証を追加することもできます。結局のところ、あなたの顧客層はおそらく一般大衆ではありません。

    • 許可された使用期間は、月単位で計算されるとのことですが、さらに上級の顧客は半年単位で計算される可能性があるため、これは生成時に決定されます。
      <を使用できます。 🎜> を保存するには、この redis にアクセスするたびに、key から cookie を取得できます (ほとんどは暗号化する必要があります)。 key に移動して、残りの認証時間を取得できます keyredis

    • キーの検証に失敗し、いずれかのページにアクセスした場合は、キーを入力したページに戻る必要があります。質問には
    • タグが含まれているため、リクエストがインターセプトされていることを認識する必要があります。ジャンプする前に処理する必要があります。

      springmvc

      返事
      0
  • 高洛峰

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

    キーがユーザーにどのようにバインドされているかわかりません。これはユーザーの一意の識別子である必要があります。一致するユーザーの一意の識別子とキーをデータベースまたはキャッシュに保存して、ユーザーに権限があるかどうかを判断できます。ページジャンプに関してはフィルターで十分です。

    返事
    0
  • 阿神

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

    ログインに成功した後に秘密鍵を生成し、それを Cookie に保存し、Web ページを更新するたびに Cookie の有効期限を設定できます。これは比較的簡単な方法です。

    返事
    0
  • 怪我咯

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

    他の外部証明書がない場合、サブジェクトの要件と「ユーザー名とパスワードを使用してログインした後の一定期間のログイン状態を記録する」の違いは何ですか?

    返事
    0
  • 阿神

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

    ご返信ありがとうございます。申し訳ありませんが、回答は 1 つしか受け付けられません。

    返事
    0
  • キャンセル返事