コード例 #1
0
def get_captcha(text=None,
                lang=getattr(settings, 'CAPTCHA_DEFAULT_LANG',
                             CAPTCHA_DEFAULT_LANG)):
    fonts = getattr(settings, 'CAPTCHA_FONTS', None)
    length = getattr(settings, 'CAPTCHA_LENGTH', 5)
    voicedir = getattr(
        settings, 'CAPTCHA_VOICEDIR',
        os.path.join(os.path.abspath(os.path.dirname(__file__)), 'data',
                     'audio_captcha', lang))
    # if audio for that language is not available
    # fallback to settings default (english: en)
    if not os.path.exists(voicedir):
        voicedir = getattr(
            settings, 'CAPTCHA_VOICEDIR',
            os.path.join(os.path.abspath(os.path.dirname(__file__)), 'data',
                         'audio_captcha', CAPTCHA_DEFAULT_LANG))
    image = ImageCaptcha(fonts=fonts)

    try:
        audio = AudioCaptcha(voicedir=voicedir)
    except IndexError as e:
        raise AudioCaptchaLangPackNotFound()

    text = text or ''.join([
        random.choice(string.ascii_letters + string.hexdigits)  # nosec
        for i in range(length)
    ])

    data_image = image.generate(text)
    data_audio = audio.generate(text)
    return data_image, data_audio
コード例 #2
0
def generate_captcha():

    alphabet = "12345679abcdeghijkmnopqrtuvwxyz"
    text = ''.join(secrets.choice(alphabet) for i in range(5))

    image = ImageCaptcha()
    audio = AudioCaptcha(voicedir='audiocaptcha')

    img_data = image.generate(text)

    img_str = base64.b64encode(img_data.getvalue())
    img_base64 = "data:image/png;base64," + img_str.decode("utf-8")

    audio_data = audio.generate(text)

    audio_str = base64.b64encode(audio_data)
    audio_base64 = "data:audio/wav;base64," + audio_str.decode("utf-8")

    captcha_hash = bcrypt.hashpw(text, bcrypt.gensalt(12))

    return {
        "captcha_image": img_base64,
        "captcha_audio": audio_base64,
        "captcha_hashed": captcha_hash
    }
コード例 #3
0
ファイル: forms.py プロジェクト: truthakash/libreshop
    def _generate_audio(self):
        # Create an encoded audio CAPTCHA.
        captcha_generator = AudioCaptcha()
        audio_buffer = captcha_generator.generate(self._secret)
        encoded_audio = ('data:audio/wav;base64,%s' %
                            base64.encodestring(audio_buffer).decode())

        self.audio = encoded_audio
コード例 #4
0
ファイル: capytcha.py プロジェクト: fcgomes92/capytcha
def create_audio_captcha(captcha_text):
    # Create the audio captcha with the specified voice wav file library folder.
    # Each captcha char should has it's own directory under the specified folder ( such as ./voices),
    # for example ./voices/a/a.wav will be played when the character is a.
    # If you do not specify your own voice file library folder, the default built-in voice library which has only digital voice file will be used.
    # audio_captcha = AudioCaptcha(voicedir='./voices')
    # Create an audio captcha which use digital voice file only.
    audio_captcha = AudioCaptcha()
    audio_data = audio_captcha.generate(captcha_text)

    # audio_file = "./captcha_"+captcha_text+'.wav'
    # audio_captcha.write(captcha_text, audio_file)

    return audio_data
コード例 #5
0
ファイル: views.py プロジェクト: harmeetsingh01/captchas
def audio(request):
    global atext
    if request.method == 'POST':
        response = request.POST.get("captcha-text")

        if response == atext:
            return render(request, 'success.html')
        else:
            return render(request, 'audio.html', {'message': 'Try Again'})

    captcha_text = str(random.randint(1000, 9999))
    audio_captcha = AudioCaptcha()
    audio_data = audio_captcha.generate(captcha_text)
    audio_captcha.write(captcha_text, './static/cap.wav')
    atext = captcha_text
    return render(request, 'audio.html')
コード例 #6
0
def create_audio_captcha():

    # Create the audio captcha with the specified voice wav file library folder.
    # Each captcha char should has it's own directory under the specified folder ( such as ./voices),
    # for example ./voices/a/a.wav will be played when the character is a.
    # If you do not specify your own voice file library folder, the default built-in voice library which has only digital voice file will be used. 
    # audio_captcha = AudioCaptcha(voicedir='./voices')
    # Create an audio captcha which use digital voice file only.
    audio_captcha = AudioCaptcha()

    # Because we use the default module voice library, so we can only generate digital text voice.
    captcha_text = create_random_digital_text()

    # Generate the audio captcha file.
    audio_data = audio_captcha.generate(captcha_text)

    # Save the autiod captcha file.
    audio_file = "./captcha_"+captcha_text+'.wav'
    audio_captcha.write(captcha_text, audio_file)

    print(audio_file + " has been created.")
コード例 #7
0
def create_audio_captcha():

    # Create the audio captcha with the specified voice wav file library folder.
    # Each captcha char should has it's own directory under the specified folder ( such as ./voices),
    # for example ./voices/a/a.wav will be played when the character is a.
    # If you do not specify your own voice file library folder, the default built-in voice library which has only digital voice file will be used. 
    # audio_captcha = AudioCaptcha(voicedir='./voices')

    # Create an audio captcha which use digital voice file only.
    audio_captcha = AudioCaptcha(voicedir='./voices')
    #audio_captcha = AudioCaptcha(voicedir='C:\\Users\\SIDDHARTHA\\Dropbox\\Trinity Data Science\\Scalable Computing\\Projects\\audio-alphabet')
    # Because we use the default module voice library, so we can only generate digital text voice.
    #captcha_text = create_random_digital_text()
    captcha_text = "a"

    # Generate the audio captcha file.
    audio_data = audio_captcha.generate(captcha_text)

    # Save the autiod captcha file.
    audio_file = "./"+captcha_text+'.wav'
    audio_captcha.write(captcha_text, audio_file)

    print(audio_file + " has been created.")
コード例 #8
0
ファイル: test_audio.py プロジェクト: jiaqiang17/captcha
def test_audio_generate():
    captcha = AudioCaptcha()
    data = captcha.generate("1234")
    assert isinstance(data, bytearray)
    assert bytearray(b"RIFF") in data
コード例 #9
0
# Create your own Image and Audio Captcha

# For Image Captcha
from captcha.image import ImageCaptcha

image = ImageCaptcha(width=280, height=90)

data = image.generate('github2104klop')

image.write('github2104klop', 'create Captcha2.png')

# For Audio Captcha
from captcha.audio import AudioCaptcha

audio = AudioCaptcha()

data1 = audio.generate('406')

audio.write('406', 'Create Audio Captcha1.wav')
コード例 #10
0
ファイル: captcha1.py プロジェクト: NerdJain/Python
from captcha.audio import AudioCaptcha
from captcha.image import ImageCaptcha

audio = AudioCaptcha(voicedir='/path/to/voices')
image = ImageCaptcha(fonts=['/path/A.ttf', '/path/B.ttf'])

data = audio.generate('1234')
audio.write('1234', 'out.wav')

data = image.generate('1234')
image.write('1234', 'out.png')
コード例 #11
0
#generate image captcha
from captcha.image import ImageCaptcha

image = ImageCaptcha()

image_data = image.generate('AI SOCIETY')
image.write('AI SOCIETY', 'captcha.png')

#generate audio captcha
from captcha.audio import AudioCaptcha

audio = AudioCaptcha()
audio_data = audio.generate('45678')
audio.write('45678', 'audio.wav')
コード例 #12
0
ファイル: captcha.py プロジェクト: Dikshit-Kapoor/ReCaptcha
from captcha.image import ImageCaptcha
#For generating the image captcha
image=ImageCaptcha()
data=image.generate('DI123')
image.write('DI123','captcha.jpg')


#For generating the audio captcha
from captcha.audio import AudioCaptcha

audio=AudioCaptcha()
data1=audio.generate("1223")
audio.write('1223','1.wav')
コード例 #13
0
ファイル: test2.py プロジェクト: fzh890523/py_sth
def do_audio():
    audio = AudioCaptcha(voicedir="./")

    data = audio.generate("1234")
    assert isinstance(data, bytearray)
    audio.write("1234", "out.wav")
コード例 #14
0
# Generate Random Captcha In Python

# import required modules
from captcha.image import ImageCaptcha
from captcha.audio import AudioCaptcha
import random

# Create an instance of ImageCaptcha.
img = ImageCaptcha()
# Create an instance of AudioCaptcha.
audio = AudioCaptcha()

# generate rand string of number
rand = str(random.randint(10000, 99999))

# Call img.generate method to create the image object
img.generate(rand)
# Call img.write method to save the image to a file.
img.write(rand, 'cap.png')

# Generate autio captcha data
audio.generate(rand)
# Save the audio captcha data into a audio file.
audio.write(rand, 'aud.wav')
コード例 #15
0
def generate_audio_captcha(num):
    audio = AudioCaptcha()
    data = audio.generate(num)
    audio.write(num, 'captcha.wav')
コード例 #16
0
ファイル: main.py プロジェクト: thisissareer/Captcha
from captcha.image import ImageCaptcha
from captcha.audio import AudioCaptcha
image = ImageCaptcha()

image_data = image.generate('Sareer Talks')
image.write('Sareer Talks', 'cap.png')

audio = AudioCaptcha()
audio_data = audio.generate('12345')
audio.write('12345', 'audio.mp3')
コード例 #17
0
# captcha has string and num
def get_string(letters_count, digits_count):
    letters = ''.join(
        (random.choice(string.ascii_letters) for i in range(letters_count)))
    digits = ''.join(
        (random.choice(string.digits) for i in range(digits_count)))
    # convert resultant string to list and shuffle it to mix letters and digits
    sample_list = list(letters + digits)
    random.shuffle(sample_list)
    # convert list to string
    final_string = ''.join(sample_list)
    return final_string


myCaptcha = get_string(5, 5)

#gen Captcha
image = ImageCaptcha(width=280, height=90)
audio = AudioCaptcha()

data = image.generate(myCaptcha)
data = image.generate(myStringCaptcha)
data = image.generate(myNumCaptcha)
data = audio.generate(myNumCaptcha)

image.write(myCaptcha, 'demoCaptcha.png')
image.write(myStringCaptcha, 'demoStringCaptcha.png')
image.write(myNumCaptcha, 'demoNumCaptcha.png')
audio.write(myNumCaptcha, 'demoNumCaptcha.waw')
コード例 #18
0
ファイル: main.py プロジェクト: sahaj169/Create-captcha
    'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
]
smallletterList = [
    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
    'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
]
numberList = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
randomthreeBigLetter = random.choices(capitalletterList, k=3)
randomtwosmallLetter = random.choices(smallletterList, k=2)
randomtwonumber = random.choices(numberList, k=2)
listrandom = randomthreeBigLetter + randomtwosmallLetter + randomtwonumber
random.shuffle(listrandom)
captcha = ("".join(listrandom))
print(f"The Captcha is: {captcha}")

image_data = image.generate(captcha)
image.write(captcha, 'captcha.png')

#generate audio captcha
from captcha.audio import AudioCaptcha

audio = AudioCaptcha()

#this will give 2 random integers
randomtwoint = random.choices(numberList, k=2)
twoint = ("").join(randomtwoint)
print(f"The Audio Captcha is: {twoint}")

audio_data = audio.generate(str(twoint))
audio.write(str(twoint), 'audioCaptcha.wav')
コード例 #19
0
from captcha.image import ImageCaptcha
from captcha.audio import AudioCaptcha
img = ImageCaptcha()
audio = AudioCaptcha()
# img.write("xy12", 'xy.png')

data = audio.generate('123456789')
audio.write('1234', '2.mp3')
コード例 #20
0
# pip install cpatcha
from captcha.audio import AudioCaptcha
from captcha.image import ImageCaptcha
print('imported')
image = ImageCaptcha(width=280, height=90)
data = image.generate('HarshatejaBolla')
image.write("HarshatejaBolla", 'harsha.png')

audio = AudioCaptcha()
print('auioimported')

data1 = audio.generate('123')
image.write("123", 'harsha.wav')
print('auido generated')
コード例 #21
0
def test_audio_generate():
    captcha = AudioCaptcha()
    data = captcha.generate('1234')
    assert isinstance(data, bytearray)
    assert bytearray(b'RIFF') in data
コード例 #22
0
data = image.generate("CCCCVGFD")
image.write('CCCCVGFD', 'demo2.png')

# In[10]:

from captcha.image import ImageCaptcha

image = ImageCaptcha(width=280, height=90)
data = image.generate("BHBHGFFDD")
image.write('BHBHGFFDD', 'demo3.png')

# In[16]:

from captcha.image import ImageCaptcha

image = ImageCaptcha(width=270, height=80)
data = image.generate("12CCP890")
image.write('12CCP890', 'demo4.png')

# # Audio Captcha

# In[27]:

from captcha.audio import AudioCaptcha

audio = AudioCaptcha()
data = audio.generate("99898")
audio.write('99898', 'demo6.wmv')

# In[ ]:
コード例 #23
0
#Code By Amey Band

from captcha.audio import AudioCaptcha
from captcha.image import ImageCaptcha

image = ImageCaptcha()
data = image.generate('12AFGcvd')
image.write('12AFGcvd', 'op.png')

audio = AudioCaptcha()
data = audio.generate('59647834')
audio.write('59647834', 'op.wav')