I want to generate a 6 digit random number using the PHP `mt_rand()`

function.

I know the PHP `mt_rand()`

function only takes 2 parameters: a *minimum* and a *maximum* value.

How can I do that?

Asked 7 Months ago Answers: 5 Viewed 35 times

I want to generate a 6 digit random number using the PHP `mt_rand()`

function.

I know the PHP `mt_rand()`

function only takes 2 parameters: a *minimum* and a *maximum* value.

How can I do that?

71

If you just need sampling without replacement:

```
>>> import random
>>> random.sample(range(1, 100), 3)
[77, 52, 45]
```

random.sample takes a population and a sample size `k`

and returns `k`

random members of the population.

If you have to control for the case where `k`

is larger than `len(population)`

, you need to be prepared to catch a `ValueError`

:

```
>>> try:
... random.sample(range(1, 2), 3)
... except ValueError:
... print('Sample size exceeded population size.')
...
Sample size exceeded population size
```

Tuesday, June 1, 2021

answered 5 Months ago

83

54

You could make your live much easier using a Set to store all random numbers until you reach the expected number of randoms:

```
func uniqueRandoms(numberOfRandoms: Int, minNum: Int, maxNum: UInt32) -> [Int] {
var uniqueNumbers = Set<Int>()
while uniqueNumbers.count < numberOfRandoms {
uniqueNumbers.insert(Int(arc4random_uniform(maxNum + 1)) + minNum)
}
return uniqueNumbers.shuffled()
}
print(uniqueRandoms(numberOfRandoms: 5, minNum: 0, maxNum: 10))
func uniqueRandoms(numberOfRandoms: Int, minNum: Int, maxNum: UInt32, blackList: Int?) -> [Int] {
var uniqueNumbers = Set<Int>()
while uniqueNumbers.count < numberOfRandoms {
uniqueNumbers.insert(Int(arc4random_uniform(maxNum + 1)) + minNum)
}
if let blackList = blackList {
if uniqueNumbers.contains(blackList) {
while uniqueNumbers.count < numberOfRandoms+1 {
uniqueNumbers.insert(Int(arc4random_uniform(maxNum + 1)) + minNum)
}
uniqueNumbers.remove(blackList)
}
}
return uniqueNumbers.shuffled()
}
uniqueRandoms(numberOfRandoms: 3, minNum: 0, maxNum: 10, blackList: 8) // [0, 10, 7]
```

Monday, August 2, 2021

answered 3 Months ago

34

Before this change, keys of an invalid size were padded with ` up to the next valid keysize, so presumably you should be able to do the same with your key by adding four null bytes `

` to the end. `

Now the caveat is that of course this is a weak key that will not provide the intended level of security, but it isn't going to be any worse than it already was, and you have other significant security issues with how you're encrypting as well, such as the use of ECB mode which is generally disastrous for security.

So, when you *do* decide it's time to update, choosing a key of a valid size is only one of the changes that needs to be made, and you should probably be do this as soon as you feasibly can.

Tuesday, August 17, 2021

answered 2 Months ago

Something like this ?

Or this, then the first digit can be 0 in first example can it only be 1 to 9