>  기사  >  백엔드 개발  >  Python 엔트리 레벨 식별 확인 코드

Python 엔트리 레벨 식별 확인 코드

迷茫
迷茫원래의
2017-03-25 17:07:041621검색

사전정보: 이 글에 언급된 내용은 지난 여름방학 동안 블로거가 작성한 내용입니다. 다행히도 이번 방학에는 시간이 좀 더 여유로워서 글을 쓸 수 있을 것 같았습니다. 얼마든지 쓸 수 있으니 이 글은 여기까지입니다.

인증코드? 나도 깰 수 있을까?

인증코드 도입에 대해서는 자세히 말씀드리지 않겠습니다. 사람들의 생활 속에서 수시로 다양한 인증코드가 등장하는 블로거입니다. 교무과에서 시스템 인증코드를 받았습니다.
학생들이 동다대학교 인증번호 입력이 너무 어렵다는 불만을 제기해왔습니다. 대소문자를 구별할 뿐만 아니라 올바르게 입력한 경우도 있는데, 이때 아마도 팝업이 나타날 것입니다. 禁止你的左键复制(다만 교무처에서는 인간이 조작하기 더 편리하도록 2016-17학년도 인증코드 내용을 변경하였습니다.)

의 인증코드는 다음과 같다고 볼 수 있습니다. 교무처는 매우 규칙적이며 각 문자의 크기와 숫자의 위치, 모양 등이 모두 고정되어 있어 인증코드를 식별할 기초가 없는 초보자에게 적합합니다.

식별 방법

시뮬레이션된 로그인 단계는 복잡합니다. 여기서는 다른 작업을 무시하고 입력된 인증 코드 이미지를 기반으로 답변 문자열을 반환하는 작업만 담당합니다.

우리는 인증 코드가 간섭을 일으키기 위해 사진을 다채롭게 만들 것이라는 것을 알고 있으며, 먼저 이러한 간섭을 제거해야 합니다. 이 단계에서는 사진의 색상을 강화하고 대비를 높이는 등 지속적인 실험이 필요합니다. .도움이 될 수 있습니다.

사진을 여러 번 조작한 끝에 마침내 간섭을 제거하는 더 완벽한 솔루션을 찾았습니다. 간섭을 제거한 후 최적의 상황에서 매우 순수한 흑백 문자 그림을 얻을 수 있음을 알 수 있습니다. 사진에 4개의 문자가 있습니다. 4개의 문자를 동시에 인식하는 것은 불가능합니다. 각 작은 그림에 한 문자만 포함되도록 사진을 잘라야 하며, 각 사진은 별도로 인식됩니다.

다음 단계는 텍스트를 인식하는 것입니다. 먼저 얻은 작은 이미지를 01로 표시되는 행렬로 변환합니다. 각 행렬은 문자를 나타냅니다.

예를 들어 숫자 6의 행렬

num_6=[
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,0,0,0,0,0,0,
0,0,0,0,1,1,1,0,0,0,0,0,0,
0,0,0,1,1,1,0,0,0,0,0,0,0,
0,0,0,1,1,0,0,0,0,0,0,0,0,
0,0,1,1,0,0,0,0,0,0,0,0,0,
0,0,1,1,0,0,0,0,0,0,0,0,0,
0,1,1,1,1,1,1,1,0,0,0,0,0,
0,1,1,1,1,1,1,1,1,0,0,0,0,
0,1,1,0,0,0,0,1,1,1,0,0,0,
0,1,1,0,0,0,0,0,1,1,0,0,0,
0,1,1,0,0,0,0,0,1,1,0,0,0,
0,1,1,1,0,0,0,1,1,1,0,0,0,
0,0,1,1,1,1,1,1,1,0,0,0,0,
0,0,0,1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,
]
멀리서 보면 눈을 가늘게 뜨고 보면 구별할 수 있습니다.

동대대학교 교학처의 인증코드는 매우 규칙적이고, 각 숫자의 위치가 고정되어 있기 때문에 어떠한 머신러닝 알고리즘도 필요 없이 간단한 행렬비교만 하면 됩니다. 여기에는 구현된 모든 행렬 중 유사도가 가장 높은 행렬이 있습니다. 어쨌든 데이터가 간단하고 올바르게 식별될 수 있는 한 다양한 비교 방법이 있습니다.

이 시점에서 인증번호 식별 작업이 완료되었습니다.

요약

이번에 진행한 인증코드 인식은 이미지 조작을 위해 주로 Python의 PIL을 사용하여 로그인을 시뮬레이션하고 인증코드를 자동으로 입력하는 코드에 대해서는

xfangfang의 Github

위 내용은 Python 엔트리 레벨 식별 확인 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:크롤러 작동 방식다음 기사:크롤러 작동 방식