Python3で実装した簡易認証コード認識機能の例
この記事では主にPython3で実装された簡易認証コード認識機能について紹介しており、認証コードの画像認識と処理に関するPythonの操作スキルを紹介しますので、必要な方は参考にしてください
この記事ではPython3で実装された簡易認証コード認識機能について説明します。参考のために皆さんと共有してください。詳細は次のとおりです。
今回の要件は、組織の Web サイトに自動的にログインすることです。検証コードは非常にユニークであり、検証コード認識の入門デモに非常に適しています。最初にメインコードを投稿し、画像の比較に編集を使用します。スクリプトは枕ライブラリを使用します
from PIL import Image import requests import re splitter = re.compile(r'\d{30}') # 分割二值化后的图片 # distance('11110000', '00000000') # 比较两个字符串有多少位不同, 返回不同的位数 def distance(string1, string2): d_str1 = len(string1) d_str2 = len(string2) d_arr = [[0] * d_str2 for i in range(d_str1)] for i in range(d_str1): for j in range(d_str2): if string1[i] == string2[j]: if i == 0 and j == 0: d_arr[i][j] = 0 elif i != 0 and j == 0: d_arr[i][j] = d_arr[i - 1][j] elif i == 0 and j != 0: d_arr[i][j] = d_arr[i][j - 1] else: d_arr[i][j] = d_arr[i - 1][j - 1] else: if i == 0 and j == 0: d_arr[i][j] = 1 elif i != 0 and j == 0: d_arr[i][j] = d_arr[i - 1][j] + 1 elif i == 0 and j != 0: d_arr[i][j] = d_arr[i][j - 1] + 1 else: d_arr[i][j] = min(d_arr[i][j - 1], d_arr[i - 1][j], d_arr[i - 1][j - 1]) + 1 current = max(d_arr[d_str1 - 1][d_str2 - 1], abs(d_str2 - d_str1)) # print("Levenshtein Distance is",current) # print(current) return current # 去除字符串里面连续的1 def no_one(string): n_arr = splitter.findall(string) n_arr = filter(lambda each_str: each_str != '111111111111111111111111111111', n_arr) n_result = '' for n_each in n_arr: n_result += str(n_each) return n_result opener = requests.session() res = opener.get('http://60.211.254.236:8402/Ajax/ValidCodeImg.ashx').content with open('verify.gif', 'wb') as v: v.write(res) img = Image.open('verify.gif') img = img.convert('L') size = img.size # img = img.point(table, '1') img_arr = img.load() # for x in range(size[0]): # for y in range(size[1]): # if img_arr[x, y] > 210: # img_arr[x, y] = 1 # else: # img_arr[x, y] = 0 # img.save('after.gif') inc = 0 str1 = '' str2 = '' str3 = '' cur_str = '' for x in range(size[0]): for y in range(size[1]): if img_arr[x, y] > 210: cur_str += '1' else: cur_str += '0' # print(img_arr[i, j], end='') # cur_str += str(img_arr[x, y]) inc += 1 # if inc % 18 == 0: # print('\n----') # else: # print('') if inc == 18: str1 = cur_str cur_str = '' elif inc == 36: str2 = cur_str cur_str = '' elif inc == 54: str3 = cur_str cur_str = '' str1 = str1[:-60] str2 = str2[:-60] str3 = str3[:-60] str1 = no_one(str1) str2 = no_one(str2) str3 = no_one(str3) str1 = str1.strip('1') str2 = str2.strip('1') str3 = str3.strip('1') # print(str1) # print(str3) with open('./dict/plus') as plus: with open('./dict/minus') as minus: p = plus.read() m = minus.read() is_add = 1 if distance(p, str2) < distance(m, str2) else 0 arr1 = [] arr3 = [] for each in range(1, 10): with open('./dict/{}'.format(each)) as f: ff = f.read() arr1.append([each, distance(ff, str1)]) arr3.append([each, distance(ff, str3)]) arr1 = sorted(arr1, key=lambda item: item[1]) arr3 = sorted(arr3, key=lambda item: item[1]) result = arr1[0][0] + arr3[0][0] if is_add else arr1[0][0] - arr3[0][0] print(result) # login_url = 'http://60.211.254.236:8402/Ajax/Login.ashx?Method=G3_Login' # login_data = { # 'loginname': usn, # 'password': pwd, # 'validcode': result, # # } # opener.get(login_url, login_data)
関連する推奨事項:
Python3 で txt データ ファイルを行列に読み取る方法
以上がPython3で実装した簡易認証コード認識機能の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











私たちは通常、政府やその他の機関から PDF ファイルを受け取りますが、中にはデジタル署名が付いているものもあります。署名を検証すると、SignatureValid メッセージと緑色のチェック マークが表示されます。署名が検証されない場合、有効性は不明です。署名の検証は重要です。PDF で署名を検証する方法を見てみましょう。 PDF 形式の署名を検証する方法 PDF 形式で署名を検証すると、署名の信頼性が高まり、文書が受け入れられる可能性が高くなります。次の方法で PDF ドキュメントの署名を検証できます。 Adobe Reader で PDF を開きます。 署名を右クリックし、「署名プロパティの表示」を選択します。 「署名者証明書の表示」ボタンをクリックします。 「信頼」タブから信頼できる証明書リストに署名を追加します。 「署名の検証」をクリックして検証を完了します。

1. WeChatを開いた後、検索アイコンをクリックし、WeChatチームと入力し、下のサービスをクリックして入力します。 2. 入力後、左下隅にあるセルフサービス ツール オプションをクリックします。 3. をクリックした後、上のオプションで、補助検証のブロック解除/再審査請求のオプションをクリックします。

Indian Financial System Code の略称です。電子資金移動システムに参加しているインドの銀行支店は、特別な 11 文字のコードで識別されます。インド準備銀行は、インターネット取引でこのコードを使用して銀行間で資金を送金します。 IFSC コードは 2 つの部分に分かれています。銀行は最初の 4 文字で識別され、支店は最後の 6 文字で識別されます。 NEFT (National Electronic Funds Transfer)、RTGS (Real Time Gross Settlement)、および IMPS (Immediate Payment Service) は、IFSC コードを必要とする電子トランザクションの一部です。方法 正規表現を使用して IFSC コードを検証する一般的な方法は次のとおりです。 長さが正しいかどうかを確認します。最初の 4 文字を確認してください。 5 番目の文字を確認してください。Che

golang では、入力が全角文字であるかどうかを検証するために Unicode エンコードとルーンの種類が必要です。 Unicode エンコードは、全角文字と半角文字を含む文字セット内の各文字に一意の数値コード ポイントを割り当てる文字エンコード標準です。ルーン タイプは、golang で Unicode 文字を表すために使用されるタイプです。最初のステップは、入力をルーン タイプのスライスに変換することです。これは、golang の []rune タイプを使用して変換できます。

Golang は高性能で最新のプログラミング言語であり、日常の開発では文字列処理が頻繁に行われます。その中で、入力が大文字であるかどうかを検証することは共通の要件です。この記事ではGolangで入力が大文字かどうかを確認する方法を紹介します。方法 1: unicode パッケージを使用する Golang の unicode パッケージは、文字のエンコード タイプを決定する一連の関数を提供します。大文字の場合、対応するエンコード範囲は 65 ~ 90 (10 進数) であるため、unicode を使用できます。

PHP8 は PHP の最新バージョンであり、プログラマーにさらなる利便性と機能をもたらします。このバージョンはセキュリティとパフォーマンスに特に重点を置いており、注目すべき新機能の 1 つは検証および署名機能の追加です。この記事では、これらの新機能とその使用法について詳しく説明します。検証と署名は、コンピューター サイエンスにおける非常に重要なセキュリティ概念です。これらは、送信されるデータが完全で本物であることを確認するためによく使用されます。オンライン取引や機密情報を扱う場合、検証と署名がさらに重要になります。誰かがデータを改ざんできると、潜在的にデータが改ざんされる可能性があるためです。

C++ で音声認識と音声合成を実装するにはどうすればよいですか?音声認識と音声合成は、今日の人工知能の分野で人気のある研究方向の 1 つであり、多くの応用シナリオで重要な役割を果たしています。この記事では、C++ を使用して Baidu AI オープン プラットフォームに基づいた音声認識および音声合成機能を実装する方法を紹介し、関連するコード例を示します。 1. 音声認識 音声認識は人間の音声をテキストに変換する技術であり、音声アシスタント、スマートホーム、自動運転などの分野で広く利用されています。以下は C++ を使用した音声認識の実装です。

人工知能技術の継続的な発展に伴い、顔検出および認識技術は日常生活でますます広く使用されるようになりました。顔検出および認識技術は、顔アクセス制御システム、顔決済システム、顔検索エンジンなど、さまざまな場面で広く使用されています。広く使用されているプログラミング言語である Java は、顔の検出および認識テクノロジを実装することもできます。この記事では、Java を使用して顔検出および認識テクノロジを実装する方法を紹介します。 1. 顔検出技術 顔検出技術とは、画像や動画から顔を検出する技術のことです。 Jで
