使用 php,java,ts,js,go,c,c++,c#,python,shell,bat 实现 一个随机密码生成 包含 大小写字母 阿拉伯数字 长度可控 16~64位密码
闲得无聊,让ai给我写了一堆代码,我可真的闲得无聊啊~
问题
分别使用 php,java,ts,js,go,c,c++,c#,python,shell,bat 实现 一个随机密码生成 包含 大小写字母 阿拉伯数字 长度可控 16~64位密码
回答
以下是使用不同编程语言实现随机密码生成器的示例代码:
PHP:
function generateRandomPassword($length) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$password = '';
for ($i = 0; $i < $length; $i++) {
$index = mt_rand(0, strlen($chars) - 1);
$password .= $chars[$index];
}
return $password;
}
$length = mt_rand(16, 64);
$password = generateRandomPassword($length);
echo $password;
Java:
import java.util.Random;
public class RandomPasswordGenerator {
public static String generateRandomPassword(int length) {
String chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuilder password = new StringBuilder();
Random random = new Random();
for (int i = 0; i < length; i++) {
int index = random.nextInt(chars.length());
password.append(chars.charAt(index));
}
return password.toString();
}
public static void main(String[] args) {
int length = new Random().nextInt(64 - 16 + 1) + 16;
String password = generateRandomPassword(length);
System.out.println(password);
}
}
TypeScript:
function generateRandomPassword(length: number): string {
const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
let password = '';
for (let i = 0; i < length; i++) {
const index = Math.floor(Math.random() * chars.length);
password += chars[index];
}
return password;
}
const length = Math.floor(Math.random() * (64 - 16 + 1)) + 16;
const password = generateRandomPassword(length);
console.log(password);
JavaScript:
function generateRandomPassword(length) {
const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
let password = '';
for (let i = 0; i < length; i++) {
const index = Math.floor(Math.random() * chars.length);
password += chars[index];
}
return password;
}
const length = Math.floor(Math.random() * (64 - 16 + 1)) + 16;
const password = generateRandomPassword(length);
console.log(password);
Go:
package main
import (
"fmt"
"math/rand"
"time"
)
func generateRandomPassword(length int) string {
chars := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
password := ""
rand.Seed(time.Now().UnixNano())
for i := 0; i < length; i++ {
index := rand.Intn(len(chars))
password += string(chars[index])
}
return password
}
func main() {
length := rand.Intn(64-16+1) + 16
password := generateRandomPassword(length)
fmt.Println(password)
}
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char* generateRandomPassword(int length) {
char chars[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
char* password = (char*)malloc((length + 1) * sizeof(char));
srand(time(NULL));
for (int i = 0; i < length; i++) {
int index = rand() % (sizeof(chars) - 1);
password[i] = chars[index];
}
password[length] = '\0';
return password;
}
int main() {
int length = rand() % (64 - 16 + 1) + 16;
char* password = generateRandomPassword(length);
printf("%s\n", password);
free(password);
return 0;
}
C++:
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
std::string generateRandomPassword(int length) {
std::string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
std::string password = "";
srand(time(NULL));
for (int i = 0; i < length; i++) {
int index = rand() % chars.length();
password += chars[index];
}
return password;
}
int main() {
int length = rand() % (64 - 16 + 1) + 16;
std::string password = generateRandomPassword(length);
std::cout << password << std::endl;
return 0;
}
C#:
using System;
public class RandomPasswordGenerator
{
public static string GenerateRandomPassword(int length)
{
string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
char[] password = new char[length];
Random random = new Random();
for (int i = 0; i < length; i++)
{
int index = random.Next(chars.Length);
password[i] = chars[index];
}
return new string(password);
}
public static void Main(string[] args)
{
int length = new Random().Next(16, 64 + 1);
string password = GenerateRandomPassword(length);
Console.WriteLine(password);
}
}
Python:
import random
import string
def generate_random_password(length):
chars = string.ascii_letters + string.digits
password = ''.join(random.choice(chars) for _ in range(length))
return password
length = random.randint(16, 64)
password = generate_random_password(length)
print(password)
Shell:
#!/bin/bash
generate_random_password() {
chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
password=""
for ((i=0; i<$1; i++)); do
index=$((RANDOM % ${#chars}))
password+=${chars:index:1}
done
echo $password
}
length=$((RANDOM % (64 - 16 + 1) + 16))
password=$(generate_random_password $length)
echo $password
Batch:
@echo off
setlocal EnableDelayedExpansion
set "chars=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
set "password="
for /L %%i in (1,1,%random%) do (
set /A "index=!random! %% 62"
for /F %%j in ("!index!") do set "char=!chars:~%%j,1!"
set "password=!password!!char!"
)
set /A "length=%random% %% (64 - 16 + 1) + 16"
set "password=!password:~0,%length%!"
echo %password%
请注意,这些只是简单的示例代码,生成的密码可能不够安全。如果您需要更强大和安全的密码生成器,建议使用专门的密码库或函数。