31 lines
538 B
C
31 lines
538 B
C
|
#include "random.h"
|
||
|
#include "esp_random.h"
|
||
|
|
||
|
void rand_str(size_t len, char *dest)
|
||
|
{
|
||
|
for (size_t i = 0; i < len; i++)
|
||
|
{
|
||
|
uint32_t v = esp_random() % (26 * 2 + 10);
|
||
|
|
||
|
// Upper case letter
|
||
|
if (v < 26)
|
||
|
{
|
||
|
dest[i] = 65 + v;
|
||
|
continue;
|
||
|
}
|
||
|
v -= 26;
|
||
|
|
||
|
// Lower case letter
|
||
|
if (v < 26)
|
||
|
{
|
||
|
dest[i] = 97 + v;
|
||
|
continue;
|
||
|
}
|
||
|
v -= 26;
|
||
|
|
||
|
// Digit
|
||
|
dest[i] = 48 + (v % 10);
|
||
|
}
|
||
|
|
||
|
dest[len] = '\0';
|
||
|
}
|