创建一个可以生成随机密码的程序，密码的长度应该是可配置的，并且可以包含数字、小写字母、大写字母和特殊字符。


* 密码长度: 12 
* 包含数字：是 
* 包含大写字母：是 
* 包含小写字母：是 
* 包含特殊字符：是
这是一个可能的Python程序实现：

```python
import random
import string

def generate_password(length=12, has_digits=True, has_uppercase=True, has_lowercase=True, has_special_chars=True):
    # 生成密码字符集
    charset = ""

    if has_digits:
        charset += string.digits

    if has_uppercase:
        charset += string.ascii_uppercase

    if has_lowercase:
        charset += string.ascii_lowercase

    if has_special_chars:
        charset += "!@#$%^&*()_+-=[]{}|;':\"<>,.?/~"
  
    # 生成随机密码
    password = "".join(random.choice(charset) for i in range(length))

    return password

# 测试程序生成12个字符长度的包含数字、大写字母、小写字母和特殊字符的随机密码
password = generate_password(length=12, has_digits=True, has_uppercase=True, has_lowercase=True, has_special_chars=True)
print(password)
```

输出可能会是类似这样的随机密码：`N4z1d=f$4*oB`