Android Open Source - passwords Random Randomizer






From Project

Back to project page passwords.

License

The source code is released under:

Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUC...

If you think the Android project passwords listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

// Copyright 2014 Neil Wilkinson
////w  ww  .  j a  va2  s. com
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//        http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.measuredsoftware.passvault.model;

import android.os.SystemClock;

import java.util.List;
import java.util.Map;
import java.util.Random;

/**
 * Implemenation of a {@link com.measuredsoftware.passvault.model.Randomizer} that uses real pseudo-random numbers.
 */
public class RandomRandomizer implements Randomizer
{
    private final Random random = new Random(SystemClock.uptimeMillis());

    private final Map<Integer, List<String>> dictionary;
    private final int minSingleWordLength;
    private final int maxSingleWordLength;
    private long currentSeed;

    public RandomRandomizer(final Map<Integer, List<String>> dictionary, final List<Integer> wordLengths)
    {
        minSingleWordLength = wordLengths.get(0);
        maxSingleWordLength = wordLengths.get(wordLengths.size() - 1);

        this.dictionary = dictionary;
    }

    public int getMaxSingleWordLength()
    {
        return maxSingleWordLength;
    }

    public int getMinSingleWordLength()
    {
        return minSingleWordLength;
    }

    @Override
    public int getNumber(final long additionalRandom)
    {
        random.setSeed(updateSeed(additionalRandom));
        return random.nextInt(10);
    }

    @Override
    public boolean getBoolean()
    {
        return random.nextBoolean();
    }

    private long updateSeed(final long additionalRandom)
    {
        currentSeed += additionalRandom;
        return currentSeed;
    }

    @Override
    public int getPosition(final int count)
    {
        return random.nextInt(count);
    }

    @Override
    public String getWord(final int length)
    {
        final List<String> words = dictionary.get(length);
        if (words == null)
        {
            throw new IllegalArgumentException("Failed to find list of words of length " + length);
        }
        return words.get(random.nextInt(words.size()));
    }

    @Override
    public double getRandom()
    {
        return random.nextDouble();
    }
}




Java Source Code List

com.measuredsoftware.passvault.AbsPasswordActivity.java
com.measuredsoftware.passvault.EditPasswordActivity.java
com.measuredsoftware.passvault.MainActivity.java
com.measuredsoftware.passvault.NewPasswordActivity.java
com.measuredsoftware.passvault.PassVaultApplication.java
com.measuredsoftware.passvault.Typefaces.java
com.measuredsoftware.passvault.drawable.StateTransitionDrawable.java
com.measuredsoftware.passvault.listener.PasswordTextWatcher.java
com.measuredsoftware.passvault.model.PasswordGenerator.java
com.measuredsoftware.passvault.model.PasswordListAdapter.java
com.measuredsoftware.passvault.model.PasswordModel.java
com.measuredsoftware.passvault.model.RandomRandomizer.java
com.measuredsoftware.passvault.model.Randomizer.java
com.measuredsoftware.passvault.model.UserPreferences.java
com.measuredsoftware.passvault.tools.StringTools.java
com.measuredsoftware.passvault.view.AddArrow.java
com.measuredsoftware.passvault.view.AnimatedListView.java
com.measuredsoftware.passvault.view.BackgroundContainer.java
com.measuredsoftware.passvault.view.CondensedCheckedTextView.java
com.measuredsoftware.passvault.view.CondensedEditText.java
com.measuredsoftware.passvault.view.CondensedTextButton.java
com.measuredsoftware.passvault.view.CondensedTextView.java
com.measuredsoftware.passvault.view.FooterBar.java
com.measuredsoftware.passvault.view.GeneratorSection.java
com.measuredsoftware.passvault.view.MenuScreen.java
com.measuredsoftware.passvault.view.PasswordLengthSlider.java
com.measuredsoftware.passvault.view.PasswordListItem.java
com.measuredsoftware.passvault.view.PasswordList.java
com.measuredsoftware.passvault.view.PasswordPopup.java
com.measuredsoftware.passvault.view.PasswordRandomizerView.java
com.measuredsoftware.passvault.view.PressImageButton.java
com.measuredsoftware.passvault.view.TitleBar.java