Quick actions

cmd+k|ctrl+k

Navigation

Languages

password generator

Snippet info

Language

Groovy

Visibility

public

Author

orochi-100

Created

2021-10-11T11:51:11.713452Z

Updated

2021-10-11T12:00:21.684867Z

import java.security.SecureRandom
import groovy.transform.Field

println generatePassword(15)

@Field final def REGULAR_PASSWORD_CHARACTERS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
@Field final def PASSWORD_CHARACTERS = REGULAR_PASSWORD_CHARACTERS + '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ '

/**
 * Generates a random password in ASCII characters.
 * 
 * @param length the password-length to specify
 * @return the password-<code>String</code>
 * @throws IllegalArgumentException if length is < 0
 */
def generatePassword(length) {
    if (length < 0) throw new IllegalArgumentException("length($length) is < 0")

    def secureRandom = new SecureRandom()
    (0..<length)
        .collect { REGULAR_PASSWORD_CHARACTERS[secureRandom.nextInt(REGULAR_PASSWORD_CHARACTERS.length())] }
        .join ''
}
INFO