如何在R中生成用户密码

时间:2014-03-03 12:03:46

标签: r excel-vba vba excel

我想在R中为用户生成一个passwort。到现在为止,我正在使用Excel和以下的VB脚本。如何在适当的R脚本中转换功能。非常感谢你。

myArr = Array("", 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", _
            "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", _
            "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", _
            "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
"p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", _
            "!", "§", "$", "%", "&", "(", ")", "*")

intArr = UBound(myArr)
intA = Application.InputBox("Wieviele Passwörter sollen erstellt     werden?", "PasswortGenerator", 10, , , , , 1)
If Not TypeName(intA) = "Boolean" Then
Randomize
intC = ActiveCell.Column
intZ = ActiveCell.Row
For intZ = intZ To intZ + intA 'Anzahl Passwörter
  For intP = 1 To 8 'Anzahl Stellen des Passwortes
    strP = strP & myArr(Int(intArr * Rnd + 1))
  Next intP
  If Application.WorksheetFunction.CountIf(ActiveCell.EntireColumn, strP) = 0 Then
    ActiveSheet.Cells(intZ, intC).Value = strP
  End If
  strP = ""
Next intZ
End If
End Sub

非常感谢。

好的,从下面我想设置一个能为每个员工(mitarbeiter)生成密码的功能。我想在函数中添加一个新变量'passwort',并为每个员工生成密码。所以,再次感谢您的帮助。

genPsw <- function(num, len=8) {
          # Vorgaben für die Passwortkonventionen festlegen
            myArr  <- c("", 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", 
                        "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", 
                        "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", 
                        "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
                        "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", 
                        "!", "§", "$", "%", "&", "(", ")", "*")
          # replicate is a wrapper for the common use of sapply for repeated evaluation of an expression 
          # (which will usually involve random number generation).
            replicate(num, paste(sample(myArr, size=len, replace=T), collapse=""))
          # Lanege von dataframe mitarbeiter ermitteln
          dim_mitarbeiter <- nrow(mitarbeiter)
          for(i in 1:dim_mitarbeiter) {
                        # Random Number Generation
                          set.seed(i)
                        # Generate Passwort
                        mitarbeiter$passwort <- genPsw(i)                
          }

}

1 个答案:

答案 0 :(得分:2)

genPsw <- function(num, len=8) {
  myArr  <- c("", 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", 
              "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", 
              "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", 
              "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o",
              "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", 
              "!", "§", "$", "%", "&", "(", ")", "*")
  replicate(num, paste(sample(myArr, size=len, replace=T), collapse=""))
}

set.seed(1)
genPsw(3)
# [1] "JRf§E§&l" "j5ECnSsa" "p*St%Fk9"